c++古印度象棋格麦粒
时间: 2023-11-24 10:51:10 浏览: 67
根据古老的传说,舍罕王打算奖赏国际象棋的发明人——宰相:西萨·班·达依尔。国王问他想要什么,他对国王说:“陛下,请您在这张棋盘的第1个小格里,赏给我1粒麦子,在第2个小格里给2粒,第3小格给4粒,以后每一小格都比前一小格加一倍。请您把这样摆满棋盘上所有的64格的麦粒,都赏给您的仆人吧!”根据这个问题,我们可以使用C++编写程序来计算宰相最终获得的麦粒数量。
以下是C++代码示例:
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n = 64;
long long grains = pow(2, n) - 1;
cout << "宰相最终获得的麦粒数量为:" << grains << endl;
return 0;
}
```
输出结果为:
```
宰相最终获得的麦粒数量为:18446744073709551615
```
相关问题
棋盘放麦粒python编程
国际象棋盘上的麦粒编程问题可以通过编写一个程序来解决。根据给定的需求,我们可以使用一个循环来逐个格子地计算麦粒的数量,并将其累加到总的麦粒数量中。以下是一个解决这个问题的Python程序:
```python
# 定义一个变量来保存总的麦子数量,开始为0
c = 0
# 定义一个变量,循环1-64,来代表每一个格子
i = 1
# 假设每个格子中的麦子数量为x,初始也是1
x = 1
# 循环
while i <= 64:
c += x # 总数累计上这一个格子的麦粒数
i += 1 # 下一个格子
x = x*2 # 下一个格子的麦粒数是这一个格子的2倍
# 显示结果
print("64个格子,总的麦粒数量为:", c)
```
运行这个程序,你会得到一个结果,即64个格子上总共放了多少粒麦子。
棋盘麦粒问题编程python
棋盘麦粒问题是一个古老的数学问题,它的故事是这样的:据说,在古印度的时候,有一个国王想要奖励他的顾问,于是他问顾问想要什么奖励。顾问回答说他只想要一些麦粒,数量按照这样的规则递增:第一个格子放一个麦粒,第二个格子放两个麦粒,第三个格子放四个麦粒,以此类推,每个格子放的麦粒是前一个格子放的麦粒的两倍。国王最初认为这是一个很小的请求,但是当他计算了一下需要的麦粒数量时,他惊讶地发现需要的麦粒数量超过了整个国家的产量。这个故事告诉我们,指数级别的增长是非常惊人的。
下面是用Python实现棋盘麦粒问题的代码:
```python
total_grains = 0
current_grains = 1
for i in range(64):
total_grains += current_grains
current_grains *= 2
print(total_grains)
```
这个代码使用了一个循环来计算每个格子里面应该放多少麦粒,然后将每个格子里面的麦粒数量相加得到了总的麦粒数量。如果你执行这个代码,你会发现总的麦粒数量是18,446,744,073,709,551,615,这个数字非常大,远远超出了一个64位整数的范围。这个结果也再次说明了棋盘麦粒问题的指数级别的增长是非常惊人的。