文章目录
Q1
1.1 题目
利用递归方法求5!。
1.2 思路
递归公式:fn=fn_1*4!
1.3 代码
def fact(j):
sum = 0
if j == 0:
sum = 1
else:
sum = j * fact(j - 1)
return sum
print (fact(5))
Q2
2.1 题目
利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
2.2 思路
递归公式:fn=fn_1*4!
2.3 代码
def output(s,l):
if l==0:
return
print (s[l-1])
output(s,l-1)
s = input('Input a string:')
l = len(s)
output(s,l)
Q3
3.1 题目
有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
3.2 思路
利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
3.3 代码
def age(n):
if n == 1: c = 10
else: c = age(n - 1) + 2
return c
print (age(5))
Q4
4.1 题目
给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
4.2 思路
学会分解出每一位数。
4.3 代码
x = int(input("请输入一个数:\n"))
a = x // 10000
b = x % 10000 // 1000
c = x % 1000 // 100
d = x % 100 // 10
e = x % 10
if a != 0:
print ("5 位数:",e,d,c,b,a)
elif b != 0:
print ("4 位数:",e,d,c,b)
elif c != 0:
print ("3 位数:",e,d,c)
elif d != 0:
print ("2 位数:",e,d)
else:
print ("1 位数:",e)
Q5
5.1 题目
一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
5.2 思路
学会分解出每一位数。
5.3 代码
x = int(input("请输入一个五位数:\n"))
a = x // 10000
b = x % 10000 // 1000
c = x % 1000 // 100
d = x % 100 // 10
e = x % 10
if a == e and b==d:
print("该数为五位数")