相传古印度宰相达依尔,是国际象棋的发明者。有一次,国王因为他的贡献要奖励他,问他想要什么。达依尔说:“只要在国际象棋棋盘上(8×8共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,……,后面一格的麦子总是前一格麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,刚想答应,如果你这时在国王旁边站着,你会不会劝国王别答应,为什么,你编程计算一下大约需要多少立方小麦(1立方米约为142000000粒)? 用c语言咋求?
#include <stdio.h>
int main()
{
int i;
int num=1;
for(i=1;i<=65;i++){
num*=2;
}
printf("摆满棋盘需要%d粒麦子\n",num-1);
//数学思路:总数=1+2+。。。。。。+2的64次方
// =2的65次方减1
//你可以把2的64次方视为1,整个过程倒过来就是
//1+1/2+1/4+....+1/n=2-1/n}