Java入门之水仙花算法

案例:水仙花

需求:在控制台输出所有的“水仙花数”

分析:

  1. 三位数的个位数字如何求
    371 1就是原始数字对10进行取余运算的结果
    371 % 10 = 1
  2. 三位数的百位数字如何求
    371 / 100 = 3
    371 3就是原始数字除以100的结果(整除)
  3. 三位数的十位数字如何求
    371 / 10 = 37
    371 371通过除以10.可以将7移动到个位上(整数)
    37 % 10= 7
    37通过对10进行取余运算可以得到最后一位的值7
    371 / 10 % 10 =7
  • 思考:任毫数字的指定位上的数值如问求
    先使用整除操作将要求的数字移动到个位上,再使用取余操作取出最后一位上的值
    123456789
    先整绘10000得到12345,再对10取余得到5

需求:在控制台输出所有的“水仙花数”

分析:

  1. 输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束
    for (int i = 100; i cw 999; i++) ( _ )
  2. 不是每个三位数都是水仙花数,因此需要判定,满足条件的数字才进行输出
    4£(执行的限制条件)(▁)
  3. 判定条件是将三位数中的每个数值取出来,计算立方和后与原始数字比较是否相等
    42(?+?+?==原数)(输出原数)
  4. 在计算之前获取三位数中每个位上的值
    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 协议》,转载必须注明作者和本文链接
热爱Java的Phper
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!