相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相西萨自己选择何种赏赐。这位聪明的宰相指着8 × 8共64格的象棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第1个格子中放1粒,在第2格中放2粒,第3格中放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上的64个格子,我就感激不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。
请问:国王能实现他的许诺吗?请采用累加方法(直接计算累加的通项或者利用前项计算后项)编程计算舍罕王共需要多少麦子赏赐他的宰相,这些麦子合多少立方米(已知1立方米麦子约1.42e8粒)。
输出要求:所有输出均采用指数形式输出,小数点后必须保留6位有效数字(四舍五入),不足补零。
实验目的:熟悉循环语句,累加累乘算法、通项的构成规律。
输入
无输入。
输出
输出有两行,第一行是麦子的粒数,第二行是麦子合多少立方米。所有输出均采用指数形式输出,小数点后必须保留6位有效数字(四舍五入),不足补零。
数据范围
输出为double范围的浮点数
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
int i;
double sum=1;
for(i=1;i<64;i++){
sum=sum+pow(2,i);
}
printf("%.6e\n",sum);
printf("%.6e",sum/1.42e8);
return 0;
}