Euler#6 Python项目

2024-09-27 00:11:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我要解决的问题是:https://projecteuler.net/problem=6

我试过了,但打印出来的都是两个零:

sumsquare = 0
ssum = 0
def sumsquaredif(n):
    for i in range(1, n+1):
        num = i ** 2
        num += sumsquare
        i += ssum
    squaresum = ssum**2
    print (squaresum)
    print (sumsquare)
    return
sumsquaredif(10)

然后我当然要加上代码,从平方和中减去sumsquare,然后打印出来。但这个初步代码不起作用。如果有人能帮忙,我会非常感激的。我还是个初学者。谢谢您!你知道吗


Tags: 代码inhttpsfornetdefrangenum
1条回答
网友
1楼 · 发布于 2024-09-27 00:11:32

你的作业是错误的!num += sumsquare是将和加到当前数字上,而不是相反,与ssum类似。此外,sum变量应该在函数内部声明。你知道吗

def sumsquaredif(n):
    sumsquare = 0  # inside function
    ssum = 0       # inside function
    for i in range(1, n+1):
        num = i ** 2
        sumsquare += num  # inversed
        ssum += i         # inversed
    squaresum = ssum**2

此外,您还可以通过使用列表理解来缩短代码:

sumsquare = sum(n for n in range(1, n+1))**2
squaresum = sum(n**2 for n in range(1, n+1))

相关问题 更多 >

    热门问题