麦粒棋盘问题?

相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:“只要在国际象棋棋盘上(8×8共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,……,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,刚想答应,如果你这时在国王旁边站着,你会不会劝国王别答应,为什么,你编程计算一下大约需要多少立方小麦(1立方米约为142000000粒)?

c语言求解


秦寻
浏览 1167回答 2
2回答

Glitterior

已知有这四个错误 1.long sum(int) 2.long suma = sum(x); 3.else  x = 1; 4.142E6 这个程序主要是最后的递归函数,利用后一个格子是前一个格子的2倍,且第一个格子是1这个规律

Glitterior

#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; }
打开App,查看更多内容
随时随地看视频慕课网APP