P1009 阶乘之和(python)解题报告

笔者的第一语言为C++,初学python,代码如有可改进之处,欢迎讨论(不过代码都已经过测评且AC) -----------Check_XY


引言

放暑假了,终于有空余时间自学一下python(虽然物竞、数竞和文化课几乎挤扁了我的空余时间)

就从我以前刷过的C++的题开始吧

以前为OI刷题的时候,并没有养成经常写解题报告的习惯

经过一番考虑,决定记录我的python解题,此随笔为第二弹


原题链接 (洛谷P1009)

Ⅰ递推(python无视高精标签)

#递推
f = [0 for i in range(55)]
x = input()
ans = 0
f[0] = 1
for i in range(1,int(x)+1):
    f[i] = f[i-1]*i
    ans += f[i]
print(ans)

Ⅱ记搜

#记忆化搜索
f = [0 for i in range(55)]
def jc(n):
    global f
    if f[n]:
        return f[n]
    if n==1:
        return 1
    f[n] = n * jc(n - 1)
    return f[n]
x = input()
ans = 0
for i in range(1,int(x)+1):
    ans += jc(i)
print(ans)

猜你喜欢

转载自www.cnblogs.com/zhouzhihao/p/13388137.html