钟先森 发表于 2022-7-26 12:07:36

python 课后作业求助

舍罕王的失算 的作业解题思路应该是怎么样呀?

因为没有解题思路,所以一直不知道怎么写。

下面为什么要用pow函数呢?





i = 1
sum = 0

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

print("舍罕王应该给达依尔", sum, "粒麦子!")

临时号 发表于 2022-7-26 12:15:26

pow函数返回x的y次方的值

临时号 发表于 2022-7-26 12:19:23

你也可以不用pow函数,用**也是一样的
i = 1
sum = 0

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

print("舍罕王应该给达依尔", sum, "粒麦子!")

钟先森 发表于 2022-7-26 12:22:07

那为什么要用**或者pow呢?

sampan 发表于 2022-7-26 12:23:05

这道题相当于是求2^0+2^1+……+2^63的值
pow(x,y)的作用是求x的y次方。
这段代码的作用是通过while循环,用一个累加器s不断累加,从i=1(此时wheats=2^0)累加到i=64(此时wheats=2^63),最终退出循环,得到答案

临时号 发表于 2022-7-26 12:37:25

钟先森 发表于 2022-7-26 12:22
那为什么要用**或者pow呢?

题目要求2^0+2^1+2^2+2^3+......+2^63
这个代码的思路是用while循环循环64次,在这64次中计算2^(i-1)并累加到sum变量上
页: [1]
查看完整版本: python 课后作业求助