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
程序:
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,表示,下一格的数量. 等号右边的表示现在的格的数量.