某知名国企一道简单又容易出错的java笔试题
请输出100-999之间的所有水仙花数。(20分)
如果你不清楚什么是水仙花数,这里普及一下:
水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)
请先思考两分钟,看看能否做出来:
主要知识点取模和取余基础知识点。
public static void main(String[] args) {
System.out.println("输出100-999之间的所有水仙花数:");
for (int i = 100; i < 1000; i++) {
int one = i % 10;
int ten = i / 10 % 10;
int hundred = i / 10 / 10 % 10;
if (i == (one * one * one + ten * ten * ten + hundred * hundred
* hundred)) {
System.out.println(i);
}
}
}
输出结果:
输出100-999之间的所有水仙花数:
153
370
371
407
通过输出结果可知:
三位的水仙花数共有4个:153,370,371,407;
四位的四叶玫瑰数共有3个:1634,8208,9474;
五位的五角星数共有3个:54748,92727,93084;
六位的六合数只有1个:548834;
七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;
八位的八仙花数共有3个:24678050,24678051,88593477
九位的八仙花数共有4个:146511208,912985153,472335975,534494836
十位的八仙花数共有1个:4679307774
…………
【END】
作者:洪生鹏,微信公众号 : aikaifa
感谢有你,希望今天的文章对你有帮助。
往期推荐:
Android轻松搞定流动布局FlexboxLayout
更多精彩,请长按二维码,识别关注