关于C 语言的智力题

来源:百度知道 编辑:UC知道 时间:2024/06/05 02:08:57
一位聪明宰相指者8*8共64格的象棋盘说“请赏我一些麦子把,就在棋盘的第一个格子中放1粒,第二格中放2粒,第三格中放4粒,以后每一格都比前一格增加一倍,依次放完棋盘上的64个格子,试编程用多少麦子赏赐给他,这些麦子合多少立方米?
(1立方米麦子的1.42e8粒.总麦粒SUM=1+2+22+23+……+263)

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char* argv[])
{
printf("%lf\n", (pow(2.0, 64) - 1) / 1.42e8);
return 0;
}

一楼的比较合理。二楼是错的,即使是64位编程,int使用8位,也是不行的。

main()
{int i;double s,t=1;
for(i=1;i<=64;i++){s+=t;t=2*t;}
printf("赏赐%lf粒麦子,合%lf立方米",s,s/1.42e8);
}