20180717学习日报-编程小练习

【程序1】
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和
分析:后一个的分母是前一个的分子,后一个的分子=前一个分母+前一个分子

sum = 0
a = 1
b = 2
t = 0
for n in range(1,21):
sum += b / a
t = b
b = a + b
a = t
print(“sum = “+str(sum))

执行结果:
sum = 32.66026079864164

【程序2】
题目:求1+2!+3!+…+20!的和
分析:下一个数的阶乘等于上一个数的阶乘乘以当前数字

sum = 0
temp = 1
for i in range(1,21):
temp = temp*i
sum = sum +temp
print(“sum = “+str(sum))
执行结果:sum = 2561327494111820313

【程序3】
题目:利用递归方法求5!
通过百度得知递归公式:
fact(n) = 1 n = 0
fact(n) = n * fact(n-1) n > 0
所以 5!= 5 * 4!

def fact(j):
sum = 0
if j == 0:
sum = 1
else:
sum = j*fact(j-1)
return sum

for i in range(6):
print(‘%d! = %d’ % (i,fact(i)))

执行结果:
0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120

【程序4】
题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

def palin(n):
next = 0
if n <= 1:
next = input(“请输入一个数字a:”)
print(next)
else:
next = input(“请输入一个数字b:”)
palin(n - 1)
print(next)

n = 5
palin(n)

执行结果:
请输入一个数字b:11
请输入一个数字b:9
请输入一个数字b:8
请输入一个数字b:7
请输入一个数字a:6
6
7
8
9
11

【程序5】
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第
   3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后
   问第一个人,他说是10岁。请问第五个人多大?

def age(n):
if n == 1:
c = 10
return c
else:
c = age(n-1) + 2
return c
age(5)
print(“age = “+str(age(5)))

执行结果:
age = 18

猜你喜欢

转载自blog.csdn.net/yan_jin_feng/article/details/82596750