69,371
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#define X 1000
#define Y 400
int Fun() {
int a[Y] = { 2 }, b[Y]; //原本有个2
int sum = 0;
int i, j, m, n;
for (i = 1; i < X; ++i) { //这个循环999次,每次乘2
for (j = 0; j < Y; ++j) //把上次结果保存起来作为下次的运算数
b[j] = a[j];
for (n = 0; n < Y; ++n) //这个就是a=b*2
if (n == 0)
a[n] = 2 * b[n] % 10; //最低位也就是个位不用考虑进位,因为没人给它进
else
a[n]=(2*b[n]+2*b[n-1]/10)%10; //其他位就得考虑进位了,a[1]是十位,a[2]是百位,依次类推
}
for (m = 0; m < Y; m++) //按要求累加各数位
sum += a[m];
return sum;
}
int main(void) {
printf("%d\n", Fun());
return 0;
}
输出
1366