zoukankan      html  css  js  c++  java
  • Python练习题 024:求位数及逆序打印

    【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)))
    

    搞定!

    ++++++++++++++++++++++++++++++++++++++

    题目出处:编程语言入门经典100例【Python版】

  • 相关阅读:
    线段树(updata+query)
    铁轨(栈)
    困难的串(搜索)
    素数环(简单搜索)
    编码
    opencv + numpy for python
    PIL参考手册
    八数码问题
    三维地图(BFS)
    梯田(dfs)
  • 原文地址:https://www.cnblogs.com/iderek/p/5971525.html
Copyright © 2011-2022 走看看