编程与水仙花数

宝丰韩

水仙花数也被称为超完全数字不变数(pluperfect digitalinvariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number)。<br>设有一个 n位数字的数S,将其各位(个位、百位…)上的数,都作 n次幂后,则可得到 n个数;如果将这n个数相加,其和恰好是S,则称此数S为自恋数。<br> 例如:1^3 + 5^3+ 3^3 = 153。<div>为什么叫水仙花数?<br>水仙花数(Narcissistic number)中的narcissistic本意是“自我陶醉,自赏的,自恋的”。在希腊神话中,貌美青年那喀索斯(narcissus)爱上了自己在水中的倒影,他死后化作水仙花,此花即因之命名。<br></div> 自恋数是数学家马达齐在1966年给出的名称,也叫“自重数”、“还原数”,或叫“超完全数字不变数”。而科普作家谈祥柏先生,在科普书《乐在其中的数学》中,称它为一个更好听的名字,叫做“水仙花数”。中国国防科技大学刘江宁用计算机找到了全部自恋数,共88个,其中最大的自恋数是39位数! <div> 列出三位数中水仙花数</div>程序思路:<br>第1步:定义4个变量,分别是三位数、百位数、十位数、个位数;定义一个列数,水仙花数。<div>第2步:三位数的范围为100-999,设置变量三位数初始值为100;删除列表水仙花数的全部项目。<br></div><div>第3步:从三位数中提取每个数位上的数字,放到变量百位数、十位数、个位数中。<br></div><div>第4步:判断百、十、个位数的3次方后的和,是否等于这时三位数的值。如果等于,那么这时的三位数就是一个水仙花数,将百位数、十位数、个位数的值插入到水仙花数列表中,否则三位数+1后,再从第3步重复执行。直到三位数的值大于999,退出循环。<br></div> 运行结果