(1)利用递归函数调用方式,将所输入的5个字符,以相反顺序显示出来。
(2)有5个人坐在一起,问第5个人多少岁,他说比第4个人大2岁。问第4个人的岁数,他说比第3个人大2岁。问第3个人的岁数,他说比第2人大2岁。问第2个人的岁数,他说比第1个人大2岁。最后问第1个人,他说是10岁。请问第5个人多大岁数?
(3)给一个不多于5位的正整数,要求:a)求它是几位数,b)逆序显示各位数字。
(4)对于一个5位数,判断它是不是回文数。如12321是回文数,个位与万位相同,十位与千位相同。
第一题,
#利用递归函数调用方式,将所输入的5个字符,以相反顺序显示出来。
def dayin(num,*five):
if num == 0:
print(*five[num])
else:
print(*five[num])
dayin(num - 1,*five)
dayin(4,'a','b','c','d','e') #这个方法局限性太大了
#这种方法更好
str = input("请输入五个字符:")
def dayin2(num1):
if num1 == -1:
return ''
else:
return str[num1] + dayin2(num1 - 1)
print(dayin2(len(str) - 1))
第二题:
#有5个人坐在一起,问第5个人多少岁,他说比第4个人大2岁。问第4个人的岁数,
#他说比第3个人大2岁。问第3个人的岁数,他说比第2人大2岁。问第2个人的岁数,
#他说比第1个人大2岁。最后问第1个人,他说是10岁。请问第5个人多大岁数?
#这个方法也有局限性,没有下面那个递归方法好,因为这个要自己去设定值
#而递归不用设置值
sum = 10
for i in range(1,5):
sum += 2
print(sum)
#递归
def suishu(num):
if num == 1:
return 10
else:
return suishu(num - 1) + 2
print(suishu(5))
第三题:
#给一个不多于5位的正整数,要求:a)求它是几位数,b)逆序显示各位数字。
#这个题目就比较简单了,一点点代码就解决了
num1 = input("请输入一个不多于五位的正整数:")
print(num1,'是',len(num1),'位数')
print('逆序显示为:',num1[::-1]) #切片方法
第四题:
#对于一个5位数,判断它是不是回文数。如12321是回文数,个位与万位相同,十位与千位相同。
#之前有一篇文章专门提到了回文数,有兴趣可以去看看
num2 = input("请输入一个五位数:")
if len(num2) == 5 and num2 == num2[::-1]:
print(num2,'是回文数')
elif len(num2) != 5:
print('您输入的不是一个五位数!!!')
else:
print(num2,'不是回文数')