C语言 例题讲解

来源:百度知道 编辑:UC知道 时间:2024/05/16 10:20:57
在第一个格子里放1粒米,在第2个格子中放第一1个格子中两倍的米。以此类推。共有64个格子,编一个程序计算64个格子中的米数总和并输出。

程序:
main()
{int i;
double x=0.5,s=0.0;
for(i=1;i<65;i++)
{x=2*x;
s+=x;
}
printf("s=%f\n",s);
}

请朋友们给分析一下解法,特别是x=2*x的由来.谢谢帮忙!
为什么X赋值为0.5

第一个格 1 2*0.5(x=0.5)
第二个格 2 2*1(x=1)
第三个格 4 2*2(x=2)
.....
总和1+2+4+...
不知道说清楚没有

这里用了一个循环,x表示每个格中的米数,
2x表示
在第2个格子中放第一1个格子中两倍的米。以此类推。
s+=x 统计总数

x=2*x 前一个X是当前格米数,后面X是上一格米数.

在第2个格子中放第一1个格子中两倍的米
所以是x=2*x

x=2*x; 等号,左边的X,表示,下一格的数量. 等号右边的表示现在的格的数量.