Java入门:水仙花算法
案例:水仙花
需求:在控制台输出所有的“水仙花数”
分析:
- 三位数的个位数字如何求
371 1就是原始数字对10进行取余运算的结果
371 % 10 = 1 - 三位数的百位数字如何求
371 / 100 = 3
371 3就是原始数字除以100的结果(整除) - 三位数的十位数字如何求
371 / 10 = 37
371 371通过除以10.可以将7移动到个位上(整数)
37 % 10= 7
37通过对10进行取余运算可以得到最后一位的值7
371 / 10 % 10 =7
- 思考:任毫数字的指定位上的数值如问求
先使用整除操作将要求的数字移动到个位上,再使用取余操作取出最后一位上的值
123456789
先整绘10000得到12345,再对10取余得到5
需求:在控制台输出所有的“水仙花数”
分析:
- 输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束
for (int i = 100; i cw 999; i++) ( _ ) - 不是每个三位数都是水仙花数,因此需要判定,满足条件的数字才进行输出
4£(执行的限制条件)(▁) - 判定条件是将三位数中的每个数值取出来,计算立方和后与原始数字比较是否相等
42(?+?+?==原数)(输出原数) - 在计算之前获取三位数中每个位上的值
int a =原数的个位;
int b=原数的十位;
int c=原数的百位;
1f(aaa+bbb+ccc==鼠数)(
输出原数
1示例
public static void main(String[] args) { int count = 0; for (int i = 100; i < 1000; i++) { int a = i % 10; int b = i / 10 % 10; int c = i / 100 % 10; if ((a * a * a + b * b * b + c * c * c) == i) { System.out.println(i); count++; } } System.out.println("水仙花个数"+count); }
本作品采用《CC 协议》,转载必须注明作者和本文链接