递归求阶乘
题目 :
利用递归方法求5!。
程序分析: 递归调用即可。
def factorial(n):
return n*factorial(n-1) if n>1 else 1
print(factorial(5))
120
递归输出
题目 :
利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
程序分析:
递归真是蠢方法。
def rec(string):
if len(string)!=1:
rec(string[1:])
print(string[0],end='')
rec(input('string here:'))
递归求等差数列
题目:
有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
程序分析 就等差数列。
def age(n):
if n==1:
return 10
return 2+age(n-1)
print(age(5))
18
反向输出
题目:
给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
程序分析 :
学会分解出每一位数,用字符串的方法总是比较省事。
n=int(input('输入一个正整数:'))
n=str(n)
print('%d位数'%len(n))
print(n[::-1])
回文数
题目:
一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
程序分析:
用字符串比较方便,就算输入的不是数字都ok。
n=input("随便你输入啥啦:")
a=0
b=len(n)-1
flag=True
while a<b:
if n[a]!=n[b]:
print('不是回文串')
flag=False
break
a,b=a+1,b-1
if flag:
print('是回文串')