相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:“只要在国际象棋棋盘上(8×8共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,……,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,刚想答应,如果你这时在国王旁边站着,你会不会劝国王别答应,为什么,你编程计算一下大约需要多少立方小麦(1立方米约为142000000粒)?c语言求解
2 回答
Glitterior
TA贡献27条经验 获得超8个赞
已知有这四个错误
1.long sum(int)
2.long suma = sum(x);
3.else x = 1;
4.142E6
这个程序主要是最后的递归函数,利用后一个格子是前一个格子的2倍,且第一个格子是1这个规律
Glitterior
TA贡献27条经验 获得超8个赞
#include<stdio.h>
int sum(int);
int main()
{
int x = 64;
long sum = sum(64);
printf("%ld\n",sum/1.42E8);
return 0;
}
int sum(int a)
{
long x =sum(a);
if(a != 1)
x =2*sum(a-1);
else
sum(1) =1;
return x;
}
- 2 回答
- 0 关注
- 1157 浏览
添加回答
举报
0/150
提交
取消