python算法: 棋盘上的麦粒(舍罕王赏麦)

news/2024/9/21 8:15:04

一,for循环:

1,功能:重复执行同一段代码
语法:

for index in range(n): 
    # 循环体代码

index : 用来依次接收可迭代对象中的元素的变量名
range()函数:负责返回整数序列

流程图:

2,应用

range可以同时指定start 和stop,用for遍历并打印

1
2
3
4
# 指定 start和stop
# print的参数 end=" " 用来使打印不换行
for num in range(3,9):
    print(num, end=" ")

运行结果:

3 4 5 6 7 8 

二,while循环:

1,功能:重复执行同一段代码
语法:

while 条件表达式:
    # 循环体

 当条件表达式的返回值为真时,则执行循环体中的语句,
执行完毕后,重新判断条件表达式的返回值,
如果表达式返回的结果为假,则退出循环体

2,流程图:

3,打印从1到10

1
2
3
4
5
# 打印从1到10
n = 1
while n <= 10:
    print(n, end=" ")
    n += 1

运行结果:

1 2 3 4 5 6 7 8 9 10 

说明:刘宏缔的架构森林—专注it技术的博客,
网址:https://imgtouch.com
本文: https://blog.imgtouch.com/index.php/2024/03/14/python-suan-fa-qi-pan-shang-de-mai-li-she-han-wang-shang-mai/
代码: https://github.com/liuhongdi/ 或 https://gitee.com/liuhongdi
说明:作者:刘宏缔 邮箱: 371125307@qq.com

三,棋盘上的麦粒的题目与思路

1,题目:

印度的舍罕王打算重赏发明了国际象棋的宰相,宰相说:“陛下,请您在这张棋盘的第一个格內赏给我一粒麦子,在第二个格内赏给我两粒麦子在第三个格內赏给我四粒麦子,照这样每一格内都比前一格多一倍,把这棋盘的64个格都放满就行啦”。舍罕王满口答应:“你所要求的并不多,你会如愿以偿。

请问:一共需要赏赐给这位宰相多少粒麦子?

2,思路:

已知第一格放1粒,第二格放2粒,第三格放4粒,以此类推,而且知道棋盘的格子总数,所以用循环即可,而且for/while都可以

四,编写代码:

1, for循环

1
2
3
4
5
6
num = 1  # 当前格的麦子数量
total = 1  # 麦子总数
for i in range(2, 65):
    num *= 2  # 得到当前格上的麦子数量
    total += num  # 把当前格上的麦子数量添加到总数
print("麦子总数:", total)

运行结果:

麦子总数: 18446744073709551615

2,while循环

1
2
3
4
5
6
7
8
9
10
# 第一格的情况
total = 1    # 麦子总数,当前是第1格时,总数是1
num = 1      # 当前格上的麦子数量,第一格时麦子数量是1
grid = 1     # 第几格,当前是第一格
# 遍历到第64格
while grid <= 63:
    grid += 1      # 得到当前格
    num *= 2       # 得到当前格上的麦子数量
    total += num   # 把当前格上的麦子数量添加到总数
print("麦粒总数:", total)

运行结果:

麦粒总数: 18446744073709551615

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/31731.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

python算法:杨辉三角

一,认识递归函数 1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止 2,什么是递归函数:递归函数(recursive function)是指在函数体中可以…

python算法:百钱买百鸡

一,for循环: 1,功能:重复执行同一段代码语法: for index in range(n): # 循环体代码 index : 用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列 流程图:2,应用 range可以同时指定start 和stop,用for遍历并打印1 2 3 4# 指定 start和stop # print的参数 e…

python算法:鸡兔同笼

一,for循环: 1,功能:重复执行同一段代码语法: for index in range(n): # 循环体代码 index : 用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列 流程图:2,应用 range可以同时指定start 和stop,用for遍历并打印1 2 3 4# 指定 start和stop # print的参数 e…

python算法:角谷猜想

一,认识递归函数 1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止 2,什么是递归函数:递归函数(recursive function)是指在函数体中可以…

python算法:水仙花数

一,for循环: 1,功能:重复执行同一段代码语法: for index in range(n): # 循环体代码 index : 用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列 流程图:2,应用 range可以同时指定start 和stop,用for遍历并打印1 2 3 4# 指定 start和stop # print的参数 e…

python算法:n皇后

一,认识递归函数 1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止 2,什么是递归函数:递归函数(recursive function)是指在函数体中可以…

python: 递归函数:汉诺塔

一,认识递归函数 1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止 2,什么是递归函数:递归函数(recursive function)是指在函数体中可以…

CPLEX 初识 -- JAVA实现

CPLEX 初识 -- JAVA实现 本文参考《运筹优化常用模型、算法及案例实战》,同时也是笔者用来记录自己所学知识,如有问题欢迎交流讨论~ 1 环境配置&模型建立 需要装配jar包及配置VM options, 如下图所示:-Djava.library.path="/Applications/CPLEX_Studio2211/java&qu…