【Python练习题 024】 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
----------------------------------------------
这题如果不用递归,实在太简单了!!!代码上:
str = input('请输入一个不多于5位的正整数:')
print('这个数字是%s位数,逆序为%s。' % (len(str), str[::-1]))
输出结果如下:
请输入一个不多于5位的正整数:45931
这个数字是5位数,逆序为13954。
就这么简单。真有还有必要写递归函数吗?…… 好吧,我知道这只是一种训练,但我现在睏了,明天再更新递归函数吧…… zzz
【2016-10-19 更新】-----------------------------------------
更新一下递归函数吧。现在我对递归函数的理解是:
def f(x):
if x == 最小值:
return 最小值对应的值或无关紧要的值
else:
return 一个函数,表达式中要设下 f(x-1) 的套
大概就是这样子吧。就像这题,要逆序重排几个字符,那么在函数里就应该这么写:return 最大的那个字符 + 下一个字符,而这里的“下一个字符”必然也会要求 + 下一个字符的,如此循环至最小的那个 str[0] 。代码如下:
str = input('请输入一个不多于5位的正整数:')
def f(x):
if x == 0:
return str[0]
else:
return str[x] + f(x-1)
print('%s位数,逆序为:%s' % (len(str), f(len(str)-1)))
搞定!
++++++++++++++++++++++++++++++++++++++