2) 编程求解任意一个数是否是一个水仙花数。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数。
时间: 2024-10-16 13:22:30 浏览: 68
在编程中,我们可以创建一个函数来检查一个三位数是否是水仙花数。这里是一个使用Python的例子:
```python
def is_armstrong_number(n):
# 将数字转换为字符串以便于处理每一位
str_n = str(n)
# 检查数字长度是否为3,如果不是则不是水仙花数
if len(str_n) != 3:
return False
# 分离出每位数字并计算它们的立方和
digits = [int(digit) for digit in str_n]
sum_of_cubes = sum([digit ** 3 for digit in digits])
# 如果立方和等于原数,它是水仙花数,否则不是
return sum_of_cubes == n
# 示例测试
number = 153
if is_armstrong_number(number):
print(f"{number} 是水仙花数")
else:
print(f"{number} 不是水仙花数")
```
在这个例子中,我们首先检查输入的数字是否是三位数,然后对每个位上的数字求立方并累加。如果最终的和等于原始数字,那么它就是水仙花数。
相关问题
Java编程求出所有水仙花数:水仙花数是指一个 3 位数,它的每个数位上的数字的 3次幂之和等于它本身
在Java编程中,求解水仙花数是一个常见的算法练习题。水仙花数是指一个三位数,其百位、十位和个位数字分别立方后相加等于原数本身。下面是一个简单的Java函数示例,用于找出所有的水仙花数:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
int limit = 1000; // 只考虑三位数
for (int num = 100; num <= limit; num++) {
if (isNarcissistic(num)) {
System.out.println(num);
}
}
}
// 检查是否是水仙花数
private static boolean isNarcissistic(int number) {
int firstDigit = number / 100;
int secondDigit = (number % 100) / 10;
int thirdDigit = number % 10;
// 计算各位立方和并检查是否等于原数
return (firstDigit * firstDigit * firstDigit +
secondDigit * secondDigit * secondDigit +
thirdDigit * thirdDigit * thirdDigit) == number;
}
}
```
在这个程序里,我们遍历从100到999的所有整数,对每个数使用`isNarcissistic`方法判断是否满足水仙花数条件。如果满足,就打印出来。
用java求出100至999之间所有的水仙花数。 水仙花数:水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。
可以使用以下代码来求解:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i <= 999; i++) {
int a = i / 100; // 百位数
int b = i % 100 / 10; // 十位数
int c = i % 10; // 个位数
if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == i) {
System.out.println(i);
}
}
}
}
```
运行结果为:
```
153
370
371
407
```
阅读全文
相关推荐














