zoukankan      html  css  js  c++  java
  • 菜鸟教程 Python100例 之实例29

    学习编程的路,走得好艰辛。。。

    为了巩固基础知识,把菜鸟教程网上的实例拿来练习。。

    在做到实例29时,看了网站给出的代码,觉得可以加强一下功能,不由得动了一下脑筋,如下:

    原文题目:

    题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

    程序分析:学会分解出每一位数。

    网站给出的参考代码:

     1 #!/usr/bin/python
     2 # -*- coding: UTF-8 -*-
     3 
     4 x = int(raw_input("请输入一个数:
    "))
     5 a = x / 10000
     6 b = x % 10000 / 1000
     7 c = x % 1000 / 100
     8 d = x % 100 / 10
     9 e = x % 10
    10 
    11 if a != 0:
    12     print "5 位数:",e,d,c,b,a
    13 elif b != 0:
    14     print "4 位数:",e,d,c,b,
    15 elif c != 0:
    16     print "3 位数:",e,d,c
    17 elif d != 0:
    18     print "2 位数:",e,d
    19 else:
    20     print "1 位数:",e 

    参考代码的功能太简单,只能检测5位数以内的整数,如果按这种逻辑写,十位如何,百位又当如何,动了一下脑筋,使用递归,可以实现N位数检测,并反转显示,代码如下:

    #! /usr/bin/env python
    # -*- coding: utf-8 -*-
    n = raw_input("Input the number: ")
    s = list(n)
    l = len(str(n))
    def output(s,l):
    	if l == 0:
    		return
    	print s[l - 1]
    	output(s,l - 1)
    
    output(s,l)
    print '"%s" is %d digits' % (n,l)
    

     还有一种思路,将输入的数字转成列表。

  • 相关阅读:
    pip 笔记
    Codeforces Round #739
    leetcode周赛 248
    AcWing周赛 6
    AcWing周赛 5
    算法提高--最长上升子序列一
    算法提高--数字三角形模型
    数据结构--线段树
    leetcode周赛 243
    AcWing周赛 1
  • 原文地址:https://www.cnblogs.com/rousi/p/5254775.html
Copyright © 2011-2022 走看看