上期文章:
26 递归求 20! 的阶乘
题目:递归求 20! 的阶乘
代码:
# 递归求 20!
def factorial(n):
fn = 0
if n == 0:
fn = 1
else:
fn = n * factorial(n - 1)
return fn
print(factorial(20))
for i in range(20):
print("%d 的阶乘是 %d" % (i + 1,factorial(i + 1)))
结果:
27 字符串反转
题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来
代码:
# 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来
from sys import stdout
def revertPrint(str,len):
if len == 0:
return
else:
stdout.write(str[len-1])
stdout.write(' ')
revertPrint(str,len - 1)
str = input('请输入 5 个字符:')
l = len(str)
stdout.write('反转结果是: ')
revertPrint(str,l)
结果:
28 猜岁数
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
也是很简单的题
但是
要求递归实现!!
代码
# 请用递归实现
def getAge(n):
if n == 1:
return 10 # 第一个人 10 岁
else:
answer = getAge(n - 1) + 2
return answer
print (getAge(5))
结果 18
29 整数打印每一位数字
题目:给一个
正整数
,要求:一、求它是几位数,二、逆序打印出各位数字
分析:
使用 求余 求模运算
,正整数,不需要正负号的判断,不做处理!
代码:
from sys import stdout
n = int(input("请输入一个数:\n"))
l = len(str(n))
print("是 %d 位数:", l)
stdout.write('从个位往后: ')
for i in range(l):
stdout.write(str(n % 10))
stdout.write(' ')
n = int(n / 10)
结果:
30 回文数
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同
代码:
# 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
from sys import stdout
n = int(input("请输入一个 5 位数:\n"))
s = str(n)
flag = False
if len(s) != 5:
stdout.write('不是 5 位数 ')
else:
for i in range(len(s) // 2):
if s[i] != s[-i - 1]:
flag = False
break
else:
flag = True
if (flag):
print("是 一个回文数!" )
else:
print("不是 一个回文数!" )
结果:
版权声明:本文为qq_43473694原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。