题目:相传古印度国王奖励国际象棋宰相达依尔,问他想要什么。达依尔说:“只要在国际象棋棋盘上(共64格)摆上这么些麦子就行了:第一格一粒,第二格两粒,……,后面一格的麦子总是前一格一麦子数的两倍,摆满整个棋盘,我就感恩不尽了。”国王一想,这还不容易,刚想答应,如果你穿越时空,这时在国王旁边站着,你会不会劝国王别答应,为什么?
#include<math.h>
int main()
{
float a,i,n,k;
n=1;
for(i=1,a=1;a<=63;a++)
{
i=i*2;
n=n+i;
if(a==63)
printf("%f",n);
}
return 0;
}
程序调整后如下
#include <math.h>
#include <stdio.h>
int main()
{
long double a, i, n, k;
int max = 63;
n = 0;
for (i = 1, a = 1; a <= max; a++)
{
n = n + i;
i = i * 2;
printf("%Lf\n", n);
}
return 0;
}