判断某个数是否是水仙花数(先判断其是否为三位数)Java
时间: 2024-09-19 14:12:35 浏览: 88
水仙花数是指一个三位数,它的各位数字立方之和等于它本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。
在Java中,你可以创建一个方法来检查一个整数是否是水仙花数。首先需要确认输入的数是一个三位数,然后计算其各个位的立方并求和。以下是简单的步骤:
```java
public boolean isArmstrongNumber(int num) {
// 检查输入是否为三位数
if (num < 100 || num > 999) {
return false;
}
int originalNum = num; // 保留原始数以便取每一位
int sum = 0;
int temp = num; //临时变量,用于获取个位
// 取各位数字并将它们立方相加
while (temp != 0) {
int digit = temp % 10;
sum += Math.pow(digit, 3); // 对当前位进行立方
temp /= 10; // 移除个位
}
// 如果原数等于各位立方和,那么就是水仙花数
return originalNum == sum;
}
```
相关问题
判断某个数是否为水仙花数。先判断是否为三位数Java
判断一个数是否为水仙花数是指这个整数的每个位上的数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
在Java中,你可以通过以下步骤来实现:
```java
public class NarcissisticNumber {
public static boolean isNarcissistic(int num) {
if (num < 100 || num > 999) { // 只考虑三位数
return false;
}
int sumOfDigits = 0;
String strNum = String.valueOf(num); // 转换成字符串便于操作每位数字
for (int digit : strNum.toCharArray()) {
int digitValue = Character.getNumericValue(digit);
sumOfDigits += Math.pow(digitValue, 3); // 累加每个位数的立方
}
return sumOfDigits == num; // 检查结果是否相等
}
public static void main(String[] args) {
System.out.println(isNarcissistic(153)); // 输出 true
System.out.println(isNarcissistic(370)); // 输出 false
}
}
```
在这个代码中,我们首先检查输入的数是否在三位数范围内。然后,我们将数转换为字符串,遍历每一位,计算其立方并累加。最后,比较计算出的总和是否与原数相等,如果相等,则返回true,否则返回false。
Java判断某个数是否“水仙花数”。(先判断其是否三位数)
水仙花数是指一个三位数,它的每个位上的数字的立方之和等于它本身。例如,153是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。判断一个数是否为水仙花数的步骤如下:
1. 首先判断这个数是否为三位数,即100 <= 数 <= 999。
2. 如果是三位数,进一步判断它是否满足水仙花数的条件,即计算每一位数字的立方和是否等于原数。
下面是一个用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 num) {
// 判断是否为三位数
if (num < 100 || num > 999) {
return false;
}
int originalNumber = num;
int sum = 0;
while (num > 0) {
int digit = num % 10; // 获取个位数
sum += Math.pow(digit, 3); // 累加每个位上数字的立方
num /= 10; // 移除个位数
}
// 判断立方和是否等于原数
return sum == originalNumber;
}
}
```
阅读全文