如何判断一个数是不是水仙花数
时间: 2024-11-22 18:37:25 浏览: 10
判断一个数是否是水仙花数( narcissistic number 或者 pluperfect digital invariant),是指该数字各个位上的数字立方之和等于原数字本身。例如,153是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。
以下是判断一个整数是否为水仙花数的步骤:
1. 定义一个函数,接收一个整数作为输入。
2. 将输入的整数分解成每一位的数字,通常通过除以10并取余数得到。
3. 对于每一位的数字,计算它的立方。
4. 累加所有位上数字的立方。
5. 检查这个累加和是否等于原始输入的数字。
下面是一个简单的 Java 示例:
```java
public static boolean isNarcissistic(int num) {
int sum = 0;
String str = String.valueOf(num);
for (char digit : str.toCharArray()) {
int power = Character.getNumericValue(digit);
sum += Math.pow(Integer.parseInt(String.valueOf(power)), 3);
}
return sum == num;
}
```
相关问题
java判断一个数是不是水仙花数
好的,针对您的问题,下面是 Java 判断一个数是不是水仙花数的代码示例:
```java
public static boolean isNarcissisticNumber(int n) {
int sum = 0;
int temp = n;
int len = String.valueOf(n).length();
while (temp > 0) {
int digit = temp % 10;
sum += Math.pow(digit, len);
temp /= 10;
}
return sum == n;
}
```
这段代码的实现原理是:将该数每一位上的数字的 len 次幂相加,如果和等于该数,则该数是水仙花数,否则不是。其中 len 是该数的位数。
python判断一个数是不是水仙花数
水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是Python代码,用于判断一个数是否为水仙花数:
num = int(input("请输入一个三位数:"))
sum =
temp = num
while temp > :
digit = temp % 10
sum += digit ** 3
temp //= 10
if num == sum:
print(num, "是水仙花数")
else:
print(num, "不是水仙花数")
阅读全文