使用java做一个判断水仙花数的程序
时间: 2024-09-11 14:11:22 浏览: 47
java获取水仙花数并判断一个数是否为水仙花
水仙花数,也被称为自恋数,是指一个n位数,其各位数字的n次幂之和等于它本身。对于一个三位数来说,它就是指该数等于其各个位数上的数字的立方和。例如:153是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。
下面是一个使用Java编写的简单程序,用于判断一个三位数是否是水仙花数:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
int number = 153; // 示例数字
if (isNarcissisticNumber(number)) {
System.out.println(number + " 是一个水仙花数。");
} else {
System.out.println(number + " 不是一个水仙花数。");
}
}
public static boolean isNarcissisticNumber(int number) {
if (number < 100 || number > 999) {
// 不是三位数,直接返回false
return false;
}
int originalNumber = number;
int sum = 0;
while (number > 0) {
int digit = number % 10; // 获取个位数
sum += Math.pow(digit, 3); // 累加每个位上的数字的立方
number /= 10; // 去掉个位数
}
return sum == originalNumber;
}
}
```
这个程序首先定义了一个名为`NarcissisticNumber`的类和`main`方法。`main`方法中定义了一个整数`number`,代表要判断的数字,并调用了`isNarcissisticNumber`方法来判断该数字是否是水仙花数。如果该方法返回`true`,则输出该数字是水仙花数;如果返回`false`,则输出不是水仙花数。
`isNarcissisticNumber`方法首先检查输入的数字是否为三位数,如果不是,则直接返回`false`。然后,该方法通过循环分离出数字的每一位,并计算各位数字的立方和。最后,如果立方和等于原始数字,则该方法返回`true`,表示该数字是水仙花数。
阅读全文