集训第一天
A题
#include<stdio.h>
int calc(int k,int b);
int main()
{
int i,s;
for(i=2991;i<10000;i++)
{
s=i%10+(i/10)%10+(i/100)%10+(i/1000);
if(scalc(i,12)&&scalc(i,16))
printf("%d\n",i);
}
return 0;
}
int calc(int k,int b)
{
int a[5],i=0,sum=0,j;
while(k)
{
a=k%b;
k=k/b;
i++;
}
i–;
for(j=i; j>=0; j–)
sum+=a[j];
return sum;
}
这是道会做的题,感觉没什么难度,也没有什么困难。
B题
#include
#include
using namespace std;
const int N = 1e6 + 10;
char s[N], cnt;
int main() {
char c;
while(~scanf("%c", &c)) {
if((c >= ‘a’ && c <= ‘z’) || (c >= ‘A’ && c <= ‘Z’)) {
s[cnt++] = c;
} else {
if(cnt == 0) {
printf("%c", c);
continue;
}
if(s[0] == ‘a’ || s[0] == ‘e’ || s[0] == ‘i’ || s[0] == ‘o’ || s[0]
== ‘u’
|| s[0] == ‘A’ || s[0] == ‘E’ || s[0] == ‘I’ || s[0] == ‘O’ ||
s[0] == ‘U’) {
for(int i = 0; i < cnt; i++) {
printf("%c", s);
}
printf(“ay%c”, c);
} else {
for(int i = 1; i < cnt; i++) {
printf("%c", s);
}
printf("%cay%c", s[0], c);
}
cnt = 0;
}
}
return 0;
}
刚开始不会做,看了答案知道了思路。重点在于判断是不是字母和判断完整的单词。
难点在于如何改成c语言
|