• python打印水仙花数的个人总结


          面试过程中,提到python,面试最多的就是让你现场写代码实现水仙花、冒泡、九九乘法表,这些面试方法旨在校验面试者的python基础和思维逻辑。

    先从水仙花说起,水仙花是指一个n位正整数(n>=3),它的每个微商的数字的n次幂之和等于它本身。下面将从“输入任意正整数n(n>=3)打印”和“打印100-999的水仙花数”具体代码讲解分析

    1、输入任意正整数n(n>=3)打印:

    #!/usr/bin/python
    #-*- coding:UTF-8 -*-
    #水仙花是指一个n位正整数(n>=3),它的每个微商的数字的n次幂之和等于它本身。
    #输入任意正整数n(n>=3)打印
    def test(n):
        list = []  #定义一个list列表
        for i in range(pow(10,n-1),pow(10,n)): #range函数定义一个循环区间,pow函数实现参数的n次方。
                                                # 假如n=3,那么range函数里面的参数为:range(100,10000).
                                                # for循环会遍历包含100到9999之间的数
    
    
            list = map(int,str(i))  #map(x,y)中,x作为要实现的结果,y为原始参数。
                                                # python2.x会返回列表,python3.x会返回迭代器。
                                                # 在此把map返回的结果放到list列表中,相当于把上面遍历的数值的百位、十位、个位分离,如上面的for循环遍历到153,会返回[1,5,3]格式
            num = 0 #定义一个变量
            for j in range(0,len(list)): #在上一个for循环里再嵌套一个循环,比如上一个循环遍历到153,列表形式为[1,5,3]
                                          #在这里len函数取list表的长度,list表有3个数,所以长度为3.故该循环从0到2进行循环
                num = num+pow(list[j],n)  #pow函数返回每个循环数的n次方结果,如[1,5,3],循环完毕后pow函数返回的结果为1、7527.
                                          # 因为num每次循环都会加上一个循环返回的结果,故num=153
                if num==i: #在此进行判断,如果num值等于第一个for循环遍历的值,就进行打印
                    print i #这里重点说明一下:如果写成"return i",在调用方法时只会打印一个数值
    
    if __name__ == '__main__':
        n = int(raw_input('请输入立方数:'))  #raw_input函数直接读取控制台输入(任何类型的输入它都会接受),int函数的作用是将输入的字符转换为int类型
        test(n) #调用方法

    2、打印100-999的水仙花数:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    #打印100-999的水仙花数
    
    for i in range(100,1000):#for循环区间为100-999的数
        a = i//100 #取整除,返回商的整数部分。该处返回百位数数字
        b = (i-a*100)//10 #该处返回十位数上的数字
        c = i-a*100-b*10 #该处返回个位上的数字
        if a*a*a+b*b*b+c*c*c == i : #这里做是否满足水仙花数的逻辑判断
            print i #打印符合条件的数字

    希望能帮助到需要的伙伴,如有疑惑可联系我。也欢迎大牛指正!

    参考资料:http://blog.csdn.net/guo_apple/article/details/68944653

                       https://www.lijinlong.cc/python/pyxt/1525.html

  • 相关阅读:
    <ul>下<li>的list-style属性
    js字符数组转化为数字数组
    ES6学习之— 字符串扩展(二)
    ES6学习之— 字符串扩展
    ES6学习之—— 变量的解构赋值
    ES6学习之——let和const命令
    微信小程序中cover-view踩坑总结
    uni-app 元素在交叉轴(竖直方向)的对齐方式
    uni-app元素对齐方式
    uni-app 页面导入css样式
  • 原文地址:https://www.cnblogs.com/yinze/p/8524735.html
Copyright © 2020-2023  润新知