这道题怎么做?C++

2024-12-05 03:32:05
推荐回答(2个)
回答(1):

#include "iostream"
#include
using namespace std;
void CalcRice(int count)
{
vector 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函数就是计算全部谷粒数量

回答(2):

就是2的零次方+2的一次方+2的二次方……+2的64次方