21xrx.com
2025-03-29 07:10:23 Saturday
文章检索 我的文章 写文章
使用Java代码实现水仙花数算法
2023-06-15 16:38:09 深夜i     28     0
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方法获取其位数,然后分解出该数的每一位数字,并计算它们的各自的幂的和。最终,如果幂的和等于该数,则输出该数,即为水仙花数。

  
  

评论区