水仙花
需求:在控制台输出所有的“水仙花数”
什么是水仙花数?
1、水仙花数是一个三位数
111 222 333 370 371 520 999
2、水仙花数的个位、十位、百位的数字立方和等于原数
123 13+23+33=1+8+27=36 !=123 不是水仙花数
371 33+73+13=27+343+1=371=371 是水仙花数
分析:
1、三位数的个位数字如何求
371 1就是原始数字对10进行取余运算的结果 371%10=1
2、三位数的百位数字如何求
371 3就是原始数字除以100的结果(整除) 371/100=3
3、三位数的十位数字如何求
371 371通过除以10,可以将7移动到个位上(整数) 371/10=37
37通过对10进行取余运算可以得到最后一位的值7 37%10=7
371/10%10=7
4、思考:任意数字的指定位上的数值如何求
先使用整除操作将要求的数字移动到个位上,再使用取余操作取出最后一位上的值
123456789 先整除10000得到12345,再对10取余得到5
分析:
1、输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,999结束
2、不是每个三位数都是水仙花数,因此需要判定,满足条件的数字才进行输出
3、判定条件是将三位数中的每个数据取出来,计算立方和后与原始数字比较是否相等
4、在计算之前获取三位数中每个位上的值
综合分析:
先建立循环
计算是否满足条件,满足条件输出
取出三位数中的个位十位百位数字
public class ForDemo04{ public static void main(String[] args){ int g=0;//个位 int s=0;//十位 int b=0;//百位 int sum=0; for(int i=100;i<=999;i++){ g = i%10; s = i/10%10; b = i/100; sum=(g*g*g)+(s*s*s)+(b*b*b); if(sum==i){ System.out.println("水仙花数:"+i); } } } }
原文:https://www.cnblogs.com/fangbin-caoqiaomeng/p/14295603.html