本文主要是介绍python.完数和斐波那契数列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
# 完数# 例3-24 找出1000以内所有的完数# 完全数 (Perfect number) ,是一些特殊的自然数 # 它所有的真因子(即除了自身以外的因子)的和(即因子函数),恰好等于它本身s = 0 #这个s = 0 不能放在这 for i in range(2,1000):s = 0 # 应该放在外层循环里,内层循环外for j in range(1,i):if i % j == 0:s = s + jif s == i:print(i,end=' ') # 6 28 496# 斐波那契数列# 例3-26 斐波那契数列 # 需要设置三个变量,设置两个不太够,两项的和需要第三个变量给接住 # 很重要的是 要注意 放置的顺序i = 1 j = 1 c = 2 n = eval(input('请输入项数:')) print('{:>5}{:>5}'.format(i,j),end=' ') # 因为你先把1,1给单独拿出来了,所以要先输出来 for m in range(3,n+1):k = i + j # 因为1,1先拿出来了,所以应该直接写第三个数,不能先交换c = c + 1 # 把每一个数完成好后再进行交换,不要一上来就先交换print('{:>5}'.format(k),end=' ')if c % 4 == 0:print(' ')i = j # 然后再进行交换 这个顺序也很重要,要先确定i(即第一位上的数)j = k # 然后再确定j(即第二位上的数)# 1 1 2 3 # 5 8 13 21 # 34 55 89 144 # 233 377 610 987 # 1597 2584 4181 6765 # 例6-13 递归法求1-20的斐波那契数列def fibo(i):if i == 1 or i == 2: return 1else: return fibo(i-1) + fibo(i-2)for i in range(1,20+1):print('{:<8}'.format(fibo(i)),end='' if i % 5 != 0 else '\n')# 1 1 2 3 5 # 8 13 21 34 55 # 89 144 233 377 610 # 987 1597 2584 4181 6765
这篇关于python.完数和斐波那契数列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!