0
点赞
收藏
分享

微信扫一扫

DAY 19冲击蓝桥杯——Python实例100之26-30

冬冬_79d4 2022-02-11 阅读 52

文章目录

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("该数为五位数")
举报

相关推荐

0 条评论