21xrx.com
2024-09-17 03:43:11 Tuesday
登录
文章检索 我的文章 写文章
使用Java代码实现水仙花数算法
2023-06-15 16:38:09 深夜i     --     --
Java 水仙花数 算法

水仙花数是指一个 n 位数 ( n>=3 ) ,它的每个位上的数字的 n 次幂之和等于它本身。例如,153 是一个三位数的水仙花数,因为 $1^3 + 5^3 + 3^3 = 153$。

以下是Java代码实现:


public class NarcissisticNumber {

  public static void main(String[] args) {

    int start = 100;

    int end = 999;

    for (int i = start; i <= end; i++) {

      int n = i;

      int sum = 0;

      int m = getNumLength(n);

      while (n != 0) {

        int r = n % 10;

        n = n / 10;

        sum += Math.pow(r, m);

      }

      if (i == sum) {

        System.out.println(i);

      }

    }

  }

  public static int getNumLength(int n) {

    int len = 0;

    while (n != 0) {

      len++;

      n = n / 10;

    }

    return len;

  }

}

代码使用了一个for循环来遍历 100 - 999之间的所有数。对于每个数,通过getNumLength方法获取其位数,然后分解出该数的每一位数字,并计算它们的各自的幂的和。最终,如果幂的和等于该数,则输出该数,即为水仙花数。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复