美文网首页
python 水仙花数

python 水仙花数

作者: 十二支箭 | 来源:发表于2020-03-26 22:19 被阅读0次
最近开始学习python,一个经典的习题就是构建一个判断水仙花数的函数。
import math #其实这里不需要用math.pow,用**就行,但是懒得改了
def SXH(n):
    sum=0
    if n<100:
        print("Please input an integer >=100")
    else:
        m = len(str(n))
        for i in range(1,m):
            k = math.pow((n % math.pow(10,i))//math.pow(10,i-1),m)
            sum+=k
        sum0 = sum++math.pow(n//math.pow(10,m-1),m)    
        if n==sum0:
            return True      #开始这里没有写返回值,导致下面调用的时候吗仅执行了本函数,
        #并未将其的结果作为布尔变量进行判断
            print("True")
        else:
            return False
            print("False")

然后调用上面的函数,实现一个输出从1000至给定输入值范围的水仙花数函数
def all_SXH(max):
    if max<1000:
        print("Please input an integer >=1000")
    else:
        SXH_list=[]
        for i in range(1000,max+1):
            if SXH(i):
                SXH_list.append(i)
        print(SXH_list)        

由于本人是编程萌新加菜鸡,只想到了最老套的整除求余的方法,但是python中最好用的容器——列表还提供了一种更简单的方法。

def fast_SXH(n):
    a=str(n)
    s=0
    for i in range(len(a)):
        s+=int(a[i])**len(a)
    if n==s:
        return True
    else:
        return False

同样地,实现输出指定范围的水仙花数函数:

def fast_all_SXH(max):
    SXH_list=[]
    for i in range(1000,max+1):
        if fast_SXH(i):
            SXH_list.append(i)
    print(SXH_list)

相关文章

  • 菜鸟编程学习(python&C--008)

    Python 练习实例13(Python 100例) 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位...

  • 【Python】Python方法求水仙花数原码实例

    用Python编程方法求水仙花数,一行python代码就能解决问题。 先要知道什么是水仙花数,之后再去写代码,这样...

  • 求水仙花数,python

    用python语言实现水仙花数 什么是水仙花数? 所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例...

  • Python 求“水仙花数”- 来自www.codesc.net

    Python打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是...

  • 单老师要的问题

    水仙花数python版 C VB 素数Python版本 VB 输入十个数,从小到大 C VB 菱形 C VB 斐波...

  • Python如何输出水仙花数?如何撰写?

    所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。用Python输出水仙花数,对于有面试需求或者对算法...

  • 水仙花数——Python

    水仙花数打印出 100-999 所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数 字立方和等于该数本身...

  • python 水仙花数

    最近开始学习python,一个经典的习题就是构建一个判断水仙花数的函数。 然后调用上面的函数,实现一个输出从100...

  • 算法题目-水仙花数

    题目: 打印出所有的水仙花数 水仙花数 水仙花数(Narcissistic number)也被称为超完全数字不变...

  • 随记_求N位数范围内的所有自幂数

    今天遇到了一道题,让用Python求100 - 999 之间的水仙花数,出于好奇百度了一下,发现水仙花数只是三位数...

网友评论

      本文标题:python 水仙花数

      本文链接:https://www.haomeiwen.com/subject/tkghuhtx.html