这道题怎么做?C++ 60

你一定听说过这个故事。国王对发明国际象棋的大臣很佩服,问他要什么报酬,大臣说:请在第1个棋盘格放1粒麦子,在第2个棋盘格放2粒麦子,在第3个棋盘格放4粒麦子,在第4个棋盘... 你一定听说过这个故事。国王对发明国际象棋的大臣很佩服,问他要什么报酬,大臣说:请在第1个棋盘格放1粒麦子,在第2个棋盘格放2粒麦子,在第3个棋盘格放4粒麦子,在第4个棋盘格放8粒麦子,…后一格的数字是前一格的两倍,直到放完所有棋盘格(国际象棋共有64格)。国王以为他只是想要一袋麦子而已,哈哈大笑。当时的条件下无法准确计算,但估算结果令人吃惊:即使全世界都铺满麦子也不够用!请你借助计算机准确地计算,到底需要多少粒麦子。 展开
 我来答
acrosz
2019-06-13 · TA获得超过1154个赞
知道小有建树答主
回答量:410
采纳率:86%
帮助的人:321万
展开全部
#include "iostream"
#include <vector>
using namespace std;
void CalcRice(int count)
{
vector<double> totals;

if (count > 0)
{
//第一格为1
totals.push_back(1);
}
while (totals.size() < count)
{
//此后每一格都是前面的数量 x2
totals.push_back(totals.back() * 2);
}
double sum = 0;
for (auto i = 0; i < totals.size(); ++i)
{
//统计结果。 数字可能超过32和64位整型表达范围,因此用double计算
sum += totals[i];
}
cout << sum << endl;
}
int main()
{
CalcRice(0);
CalcRice(32);
CalcRice(64);
system("pause");
}
//CalcRice函数就是计算全部谷粒数量
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柳蓝汐
2019-06-13
知道答主
回答量:20
采纳率:36%
帮助的人:7.4万
展开全部
就是2的零次方+2的一次方+2的二次方……+2的64次方
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式