-
-
[原创]1.LeetCode刷题-阿姆斯特朗数
-
发表于:
2022-2-5 23:07
12515
-
阿姆斯特朗数其实是一种自幂数,三位的阿姆斯特朗数又被称为水仙花数。水仙花数的名字来自于一个凄美的神话故事,美少年纳西索斯苦苦追求自己的倒影最终化作一朵晶莹剔透的水仙花。之后,纳西索斯的名字(Narcissus)就成了“自我欣赏”的代名词,用水仙花数来称呼3位的自幂数,或许要有些描述“自赏”的味道。
一位的自幂数又称独身数。
三位的自幂数又称水仙花数。
四位的自幂数又称四叶玫瑰数。
五位的自幂数又称五角星数。
六位的自幂数又称六合数。
七位的自幂数又称北斗七星数。
八位的自幂数又称八仙数。
九位的自幂数又称九九重阳数。
十位的自幂数又称十全十美数。
如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。
给你一个正整数 N,让你来判定他是否是阿姆斯特朗数,是 则返回 true,不是 则返回 false。
例如:153 是一个 3 位数,且 153 = 1^3 + 5^3 + 3^3
1、首先将一个数中的每一位数字提取出来。
2、将提取出来的每一位数字与当前数本身的位数进行指数运算并且累加。比较累加的结果与数字本身是否相同。
优化方案二、 12行
优化方案三、10行
优化方案四、8行
优化方案五 7行
def
Test(N):
tmp
=
N
list
=
[]
while
tmp
/
10.0
>
0
:
s
=
tmp
%
10
list
.append(s)
tmp
=
tmp
/
/
10
print
(
list
)
Test(
123
)
[
3
,
2
,
1
]
def
Test(N):
tmp
=
N
list
=
[]
while
tmp
/
10.0
>
0
:
s
=
tmp
%
10
list
.append(s)
tmp
=
tmp
/
/
10
print
(
list
)
Test(
123
)
[
3
,
2
,
1
]
def
Test(N):
tmp
=
N
list
=
[]
while
tmp
/
10.0
>
0
:
s
=
tmp
%
10
list
.append(s)
tmp
=
tmp
/
/
10
sum
=
0
for
item
in
list
:
sum
+
=
item
*
*
len
(
list
)
if
sum
=
=
N:
return
True
else
:
return
False
print
(Test(
153
))
True
def
Test(N):
tmp
=
N
list
=
[]
while
tmp
/
10.0
>
0
:
s
=
tmp
%
10
list
.append(s)
tmp
=
tmp
/
/
10
sum
=
0
for
item
in
list
:
sum
+
=
item
*
*
len
(
list
)
if
sum
=
=
N:
return
True
else
:
return
False
print
(Test(
153
))
True
def
Test(N):
tmp
=
N
list
=
[]
while
tmp
/
10.0
>
0
:
s
=
tmp
%
10
list
.append(s)
tmp
=
tmp
/
/
10
sum
=
0
for
item
in
list
:
sum
+
=
item
*
*
len
(
list
)
return
sum
=
=
N
print
(Test(
253
))
def
Test(N):
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2022-2-5 23:08
被洪七公.编辑
,原因: