什么是水仙花?
引用百度百科:水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
需求:使用for结构找到所有水仙花数。
分析:
关系表达式:需遍历所有三位数,从100遍历到999,设x=100,x<1000 ,每次循环x加1
循环体:每次拿到一个三位数需要取出个位、十位、百位,并套用水仙花的公式判断是否是水仙花。
控制语句:每次循环x加1,直到遍历完成所有三位数,循环结束。
如何取出一个三位数的个位、十位、百位?
例如:取出985的个位、十位、百位方法如下:
个位:985%10=5
十位:985%100/10=8
百位:985%1000/100=9
代码如下:
/**
* 面向过程编程-for循环结构-求水仙花数
*
* @author 攀博课堂(www.pbteach.com)
*
*/
public class ForDemo5 {
public static void main(String[] args) {
//定义变量存储水仙花数
int num = 0;
//循环遍历所有3位数
for(int x = 100;x<1000;x++) {
//取出个、十、百位
//个位
int one = x%10;
//十位
int ten = x%100/10;
//百位
int hundred = x%1000/100;
//判断是否是水仙花
if(one * one * one + ten * ten * ten + hundred * hundred * hundred == x) {
System.out.println(x);
num ++;
}
}
System.out.println("共有水仙花数:"+num);
}
}