学习任务:

视频学习for循环案例

动手编程求水仙花数

什么是水仙花?

引用百度百科:水仙花数(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);
	}
}

提问-攀博课堂
我要提问 不会就问,有效沟通
关注公众号,加入微信群交流提问。 攀博课堂官方公众号
问答列表,查看本知识点所有问题