python 改变其Project Interpreter

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 改变其Project Interpreter相关的知识,希望对你有一定的参考价值。

参考技术A 1,在File下找到Settings,进入Settings页面

2.进入Settings页面后。

3.改变Project Interpreter。 使用Anaconda下的python.exe更好,很多包直接就有了,不用担心找不到。 点击OK就行

Python Project Euler数字第五种力量

Here is the problem

令人惊讶的是,只有三个数字可以写成数字的四次幂的总和:

1634 = 1^4 + 6^4 + 3^4 + 4^4 8208 = 8^4 + 2^4 + 0^4 + 8^4 9474 = 9^4 + 4^4 + 7^4 + 4^4

由于1 = 1 ^ 4不是总和,因此不包括在内。

这些数字的总和是1634 + 8208 + 9474 = 19316。

找到所有可写入的数字之和,作为其数字的五次幂之和。

这是我的代码:

summ = 0
digit_sum = 0
i = 0
while i < 1000000:
    j = list(str(i))
    for x in j:
       digit = int(x) ** 5
       digit_sum += digit
    if digit_sum == i:
       summ += i
       print(i)
    else:
       digit_sum = 0
    i += 1
print(summ)

任何人都可以找出为什么我错过了值4151应该是正确答案之一?

答案

您的代码中的问题是您在得到答案时忘记重置digit_sum。把digit_sum = 0放在j = list(str(i))之前。你也可以从i = 0开始。我建议从i = 10开始,因为前2位数字是10。

用这个:

[i for i in range(10, 1000000) if i == sum(int(d) ** 5 for d in str(i))]

相当于:

[4150, 4151, 54748, 92727, 93084, 194979]

使用总和:

sum(i for i in range(10, 1000000) if i == sum(int(d) ** 5 for d in str(i)))

相当于:

443839
另一答案

4150也在解决方案中。在4151步之前,digit_sum未设置为0。您应该在每个步骤中设置digit_sum = 0。

summ = 0
i = 10
while i < 1000000:
    digit_sum = 0
    j = list(str(i))
    for x in j:
        digit = int(x) ** 5
        digit_sum += digit
    if digit_sum == i:
        summ += i
        print(i)
    i += 1

print(summ)
另一答案

你的问题的答案是你不会每次都重置digit_sum,只有当digit_sum != i。如果删除else语句,它应该可以正常工作。

if digit_sum == i:
   summ += i
   print(i)
digit_sum = 0
i += 1

以上是关于python 改变其Project Interpreter的主要内容,如果未能解决你的问题,请参考以下文章

“找不到torch包”的解决办法

Python Project Euler数字第五种力量

pycharm解决模块安装慢的问题--Python

lora gateway bridge project

难以接受你的改变:从project.json到.csproj

在 Python 中为文件预分配磁盘空间而不改变其大小