编写程序,输出1000以内的水花仙数
时间: 2023-03-03 11:39:21 浏览: 149
水花仙数,也被称为阿姆斯特朗数或自恋数,是指一个n位数(n≥3), 它的每个数位的n次方之和等于该数本身。
以下是一个Python程序,可以输出1000以内的所有水花仙数:
```python
for i in range(100, 1000):
sum = 0
num = str(i)
for digit in num:
sum += int(digit) ** 3
if sum == i:
print(i)
```
这个程序使用了两个循环,外层循环从100到999枚举所有三位数,内层循环计算每个数位的3次方之和。如果内层循环结束后,这个数等于它的各位数字的3次方之和,那么这个数就是水花仙数,程序就会输出它的值。
相关问题
c语言水花仙数程序代码
"水花仙数"是指一个三位数,其各位数字之和等于其本身。例如,153就是一个水花仙数,因为1 + 5 + 3 = 9。下面是一个简单的C语言程序,用于找出所有的水花仙数:
```c
#include <stdio.h>
// 检查一个数是否是水花仙数
int isWaterfallNum(int num) {
int sum = 0;
while (num > 0) {
sum += num % 10; // 取余并累加到sum中
num /= 10; // 将数字除以10取整
}
return sum == 9; // 返回如果sum等于9,则是水花仙数
}
// 主函数,遍历所有三位数寻找水花仙数
void findWaterfallNums() {
for (int i = 100; i <= 999; i++) {
if (isWaterfallNum(i)) {
printf("%d ", i); // 打印找到的水花仙数
}
}
}
int main() {
findWaterfallNums();
return 0;
}
```
运行此程序,它将输出所有从100到999之间的水花仙数。
Java写出1到1000所有的水花仙数
水花仙数(Waterfall Number),也称为幸福数,是指一个正整数,其各位数字之和等于其平方根的小数点后每一位都为0的情况。例如,125(1^2 + 2^2 + 5^2 = 34,而√34 ≈ 5.83)就是一个水花仙数。
在Java中,我们可以编写一个函数来检查并打印1到1000范围内的所有水花仙数。以下是简化版的代码:
```java
import java.util.ArrayList;
import java.util.List;
public class WaterfallNumberFinder {
public static List<Integer> findWaterfallNumbers(int limit) {
List<Integer> result = new ArrayList<>();
for (int num = 1; num <= limit; num++) {
int sum = 0;
String numStr = num.toString();
for (char digit : numStr.toCharArray()) {
sum += Character.getNumericValue(digit);
}
if (Math.pow(sum, 2).equals(Double.parseDouble(numStr))) {
result.add(num);
}
}
return result;
}
public static void main(String[] args) {
List<Integer> waterfallNumbers = findWaterfallNumbers(1000);
for (int number : waterfallNumbers) {
System.out.println(number);
}
}
}
阅读全文