我试图解决本练习:电源数字和
https://projecteuler.net/problem=16
的代码是不言自明:我计算功率(N)2^n,并且在总和(N),我切断号码的最后一位数字。只要pow> 0,我就可以做到这一点。我收到2^15的正确解决方案,但由于某种原因,相同的代码不适用于2^1000。我收到1889年,这显然是错误的。
def power(n):
power = 2
for x in range(1, n):
power = 2*power
return power
def sum(n):
pow = power(n)
sum = 0
while pow > 0:
modulo = pow%10
sum = sum + modulo
pow = int((pow - modulo)/10)
return sum
def main():
print(int(sum(1000)))
if __name__ == '__main__':
main()
“2^1000”的正确结果是什么? –
我不知道。 projecteuler只是告诉我,我的解决方案是错误的。 – Julian
它不工作的方式? (错误,得到错误的答案等)另外,在函数sum中有一个变量'sum'。这会导致问题。如果我这样做,我只是将'2 ** 1000'的字符串表示分解为数字,将它们转换为int,然后使用内置的sum来将它们相加 –