求救帖 国王的许诺
  • 板块学术版
  • 楼主25温
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/9/27 13:05
  • 上次更新2023/10/27 09:48:33
查看原帖
求救帖 国王的许诺
36341
25温楼主2022/9/27 13:05

题目 国王的许诺 相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着8x8共64格的象棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第1个格子中放1粒,第2格中放2粒,第3格中放4粒,以后每一格都比前一格增加1倍,依此放完棋盘上的64个格子,我就感恩不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。请问:国王能兑现他的许诺吗?分别采用两种累加方法(直接计算累加的通项,利用前项计算后项)编程计算舍罕王共需要多少麦子赏赐他的宰相,这些麦子合多少立方米(已知1立方米麦子约1.42x10^8粒)。

#include <bits/stdc++.h>

int main() {
	double sum = 0;
	double v;
	for (int i = 1; i <= 64; i++) {
		sum += pow(2, i - 1);
	}
	v = sum / 1.42e8;
	printf("%e\n%e", sum, v);
	return 0;
}



#include <bits/stdc++.h>

int main() {
	int sum = 0;
	double v;
	for (int i = 1; i <= 64; i++) {
		sum += pow(2, i - 1);
	}
	v = sum / 1.42e8;
	printf("%e\n%e", sum, v);
	return 0;
}



为什么对于sum的数据类型定义不同会有不同的结果,按理来说sum不是个整型吗。。。为什么double型才能得出正确答案?

2022/9/27 13:05
加载中...