达依尔的麦子
#include <stdio.h>#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
//a为公鸡的数目,b为母鸡的数目,c为小鸡数目
int main(int argc, char *argv[]) {
//若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩下。
int i;
double sum,key;
sum=0,key=2;
for(i=1;i<64;i++)
{
sum=sum+key;
key=key*2;
}
printf("%.6e\n",sum);
printf("%.6e",sum/1.42e8);
return 0;
}
为什么是1+2*2+2*2*2+...2的六十四次方而不是加到2的六十三次方