鱼C论坛

 找回密码
 立即注册
查看: 2735|回复: 15

[已解决]舍罕王的失算、、没看懂啥意思!!

[复制链接]
发表于 2022-6-26 15:18:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
相传国际象棋是古印度舍罕王的宰相达依尔发明的。
舍罕王十分喜爱国际象棋,便决定让宰相自己选择何种赏赐。这位聪明的宰相指着 8×8 共 64 格的象棋棋盘说:陛下,请您赏给我一些麦子吧。就在棋盘的第 1 格中放 1 粒,第 2 格放 2 粒,第 3 格放 4 粒,以后每一格都比前一格增加一倍,依此放完棋盘上 64 格,我就感激不尽了……
舍罕王听了达依尔这个“小小”的要求,便让人扛来一袋麦子,他要兑现许诺。结果,在给达依尔发放麦子时,舍罕王发现他要给达依尔的麦子比自己想象的要多得多,一袋麦子是远远不够的……

编程计算舍罕王应该给达依尔多少粒麦子?

问题:
1、为什么循环是i <= 64。
2、为什么pow()是2,i-1,第一次循环i的值是1那pow函数2的i-1次方那不是2的0次方了?

i = 1
sum = 0

while i <= 64:
    wheats = pow(2, i-1)
    sum = sum + wheats
    i = i + 1

print("舍罕王应该给达依尔", sum, "粒麦子!")
最佳答案
2022-6-27 12:27:54
1.总共64格,否则你认为该循环到多少呢
2.第一次是1,2的0次方有啥问题。。非0数的0次方为1这简单数学常识啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-27 12:27:54 | 显示全部楼层    本楼为最佳答案   
1.总共64格,否则你认为该循环到多少呢
2.第一次是1,2的0次方有啥问题。。非0数的0次方为1这简单数学常识啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-27 13:08:38 | 显示全部楼层
风车呼呼呼 发表于 2022-6-27 12:27
1.总共64格,否则你认为该循环到多少呢
2.第一次是1,2的0次方有啥问题。。非0数的0次方为1这简单数学常识 ...

这么说那现在 i 是0,循环到下面 i = i + 1 ,那么循环从新开始,那么pow(2, i - 1)那 i 不是又等于 0 ?   那这样 i 的值不应该只能是0或1,不成了死循环!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-27 13:45:28 | 显示全部楼层
heiwuchang207 发表于 2022-6-27 13:08
这么说那现在 i 是0,循环到下面 i = i + 1 ,那么循环从新开始,那么pow(2, i - 1)那 i 不是又等于 0  ...

你这样是对的,因该把-1去掉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-27 13:47:27 | 显示全部楼层
hveagle 发表于 2022-6-27 13:45
你这样是对的,因该把-1去掉

哦不对,你理解错了。这个-1不是把i给减了1,只有i = i - 1或者i -= 1才会i减少1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-27 13:50:13 | 显示全部楼层

回帖奖励 +5 鱼币

所以i还是1,下次循环后,i为2。至于2的0次方吗。。。。。。就把i = 1改成i = 2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-27 14:00:18 | 显示全部楼层
heiwuchang207 发表于 2022-6-27 13:08
这么说那现在 i 是0,循环到下面 i = i + 1 ,那么循环从新开始,那么pow(2, i - 1)那 i 不是又等于 0  ...

传的是 i-1 的值,和 i 有什么关系?i=1 时和 i=2 时。带入这个式子,它们的值会相等会循环吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-27 14:27:55 | 显示全部楼层
风车呼呼呼 发表于 2022-6-27 12:27
1.总共64格,否则你认为该循环到多少呢
2.第一次是1,2的0次方有啥问题。。非0数的0次方为1这简单数学常识 ...

是不是这么个意思!!!
代码:
i = 1
sum = 0

while i <= 64:
    wheats = pow(2, i-1)
    sum = sum + wheats
    i = i + 1
运行流程:
第一次运行i=1,进入循环,(pow函数2的i-1次方,用的是i减1的值,也就是2的0次方)并不改变i本身的值。sum等于1
第二次运行i=2,进入循环,(pow函数2的i-1次方,用的是i减1的值,也就是2的1次方)2的1次方也就是2。sum=1+2
第三次运行i=3,进入循环,(pow函数2的i-1次方,用的是i减1的值,也就是2的2次方)2的2次方也就是4。
sum=1+2+4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-6-27 14:36:42 | 显示全部楼层
hveagle 发表于 2022-6-27 13:50
所以i还是1,下次循环后,i为2。至于2的0次方吗。。。。。。就把i = 1改成i = 2

i = 1改成i = 2是不对的
这样的话不符合题意第一格放一粒麦子,因为2的1次方是2
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-27 14:40:37 | 显示全部楼层
heiwuchang207 发表于 2022-6-27 14:27
是不是这么个意思!!!
代码:
i = 1

是。不要光盯着代码,对照问题描述,符合了就对了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-27 19:28:02 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-27 19:29:24 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-27 19:30:15 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-27 19:30:58 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-27 19:31:35 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-8-25 15:01:37 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-16 23:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表