通过递归的算法实现对n的阶乘计算:
def fact(n):
if n == 0 or n == 1:
return 1
else:
return (n*fact(n-1))
num=int(input())
print(fact(num))
这道题的理解需要从递归的角度理解,分析阶乘的特点,当n是0 或者1的时候,这时候阶乘的整体计算步骤已经给出,这非常容易和方便,而当n的值不再是0和1的时候,这时候就需要给其加上新的东西,通过命令递归实现。
'''打印完数:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如 6 = 1+2+3。 题目内容: 输入一个正整数n(n<1000),输出1到n之间的所有完数(包括n)。 输入格式: 共一行,为一个正整数。 输出格式: 若干行,从小到大输出完数,一行为一个数。 输入样例: 30 输出样例: 6 28
s =int(input('请输入你要计算的完数:'))
for i in range(1,s+1):
m = 0
for j in range(1,i):
if i%j==0:
m+=j
if m==i:
print(i)