背景:
水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数指一个n等于3的倍数的正整数,它的各位上的数字的3次方之后 等于它本身,那么这就是一个水仙花数,比如153,它是一个水仙花数,因为1³+5³+3³=153。
水仙花数得名于19世纪初期的一个数学家,他发现了这个有趣的数列,并将其描述为”完美花朵”因为这些数字的各个位上的数字看起来像花瓣。水仙只存在于个位数、两位数、三位数中。
扩展:
水仙花数是自幂数的一种,其他自幂数的名字以及各个数如下:
自幂数 |
一位 |
三位 |
四位 |
五位 |
六位 |
七位 |
八位 |
九位 |
十位 |
名字 |
独身数 |
水仙花数 |
四叶玫瑰数 |
五角星数 |
六合数 |
北斗七星数 |
八仙数 |
九九重阳数 |
十全十美数 |
数量 |
153、370、371、403 |
1634、8208、9474 |
54748、92727、93084 |
548834 |
1741725,4210818,9800817,9926315 |
1741725,4210818,9800817,9926315 |
1741725,4210818,9800817,9926315 |
1741725,4210818,9800817,9926315 |
水仙花数例子:
int hundrd = 0;//定义一个整型变量 hundrd,并初始化为 0 int ten = 0;//··· int individul = 0;//··· for (int i = 100; i <= 999; i++)//使用for循环遍历100-999之间的整数 { hundrd = i / 100;//获取百位数字 ten = i % 100 / 10;//获取十位数字 individul = i % 100 % 10;//获取个位数字 if (hundrd * hundrd * hundrd + ten * ten * ten + individul * individul * individul == i)//如果当前整数i是水仙花数,则满足以下等式:百位数的立方+十位数的立方+个位数立方等于当前整数i { Console.WriteLine(i+"是一个水仙花数");//输出i到控制台 } } Console.ReadKey ();//等待用户按下任意键
效果展示:
总结:
通过C#来实现 100-999之间的水仙花数,核心代码就是通过取余匀运算%来获取百位、十位和各位数字,然后计算它们的立方和,如果立方和的结果等于整数本身,则该整数是一个 水仙花数,最后在控制台输出结果。