Python判断水仙花数的方法

本文最后更新于:2020年3月23日 下午

什么是水仙花数

水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。

常见的水仙花数

水仙花数又称阿姆斯特朗数。
三位的水仙花数共有4个:153,370,371,407;
四位的四叶玫瑰数共有3个:1634,8208,9474;
五位的五角星数共有3个:54748,92727,93084;
六位的六合数只有1个:548834;
七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;
八位的八仙数共有3个:24678050,24678051,88593477
……

如何利用python实现的对水仙花数的判断

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#第一种
#提示用户输入三位数字
abc = int(input("请输入三位数:"))
#计算判断并输出结果
print("水仙花数" if abc==(abc//10**2)**3+(abc%10**2//10)**3+(abc%10)**3 else "不是水仙花数" )



#第二种
#提示用户输入
y = int(input("请输入三位数:"))
#分离数值
a = y//10**2 #百位
b = y%10**2//10 #十位
c = y%10 #个位
#计算
z = a**3+b**3+c**3
#判断与输出
print("水仙花数") if y==z else print("不是水仙花数")


#第三种
#提示用户输入
y = input("请输入三位数:")
#分离数值
a = int(y[:1]) #百位
#print(a)
b = int(y[1:2]) #十位
#print(b)
c = int(y[2:]) #个位
#print(c)
#计算
z = a**3+b**3+c**3
#print(z)
#将y的值转化为数值
y = int(y)
#判断与输出
print("水仙花数") if y==z else print("不是水仙花数")

以上只是提供了三种方法。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!