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)