某位小朋友可能在刷题的原因,突然问我,怎么求出某个范围内的水仙花数,比如1000以内的水仙花数有几个,又分别是什么数呢?
要解开类似这种题,当然要先知道"水仙花数"的定义是什么,就好像你要找出素数就要先知道素数的定义,"水仙花数"的定义:假设有一个3位数,该数是407,求出该数的每一位数的3次方然后再相加,相加后的值如果恰好等于该数的话,那么该数就是"水仙花"数,即407=4*4*4 + 0*0*0 + 7*7*7,依其原理,用Python能很快的实现出来:
1,1000以内,就从999开始,一直倒序到000,即999~000。
2,由于是3位数,那就分别倒序,使用3个逆循环实现,取值分别是i, j, k,即嵌套3层的for循环。
3,直接在最内层的循环内实现逻辑并循环判断任一数是否符合式子即可。
以下是"水仙花数"的代码:
result: