求出100至999之间的所有“水仙花数”
时间: 2023-02-21 14:22:29 浏览: 95
“水仙花数”指的是一个三位数,其各位数字的立方和等于该数本身。
在 100 到 999 之间,有如下的“水仙花数”:
153, 370, 371, 407
代码如下:
```
for num in range(100, 1000):
hundreds = num // 100
tens = (num // 10) % 10
units = num % 10
if num == hundreds ** 3 + tens ** 3 + units ** 3:
print(num)
```
相关问题
用C语言求出100~999之间的水仙花数
水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
在C语言中,你可以编写一个函数来找出100到999范围内的所有水仙花数。以下是一个简单的示例程序:
```c
#include <stdio.h>
// 函数用于检查一个整数是否为水仙花数
int is_armstrong_number(int num) {
int original_num, remainder, sum = 0;
original_num = num;
// 把数字分解并计算立方和
while (original_num > 0) {
remainder = original_num % 10;
sum += remainder * remainder * remainder; // 立方
original_num /= 10;
}
// 如果原数等于它的立方和,就是水仙花数
return (num == sum);
}
// 主函数遍历并打印水仙花数
void find_armstrong_numbers() {
for (int i = 100; i <= 999; i++) {
if (is_armstrong_number(i)) {
printf("%d ", i);
}
}
}
int main() {
find_armstrong_numbers();
return 0;
}
```
当你运行这个程序,它会输出153, 370, 371, 407 这几个水仙花数。
Scala求100到999之间的所有水仙花数
水仙花数是指一个三位数,其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。Scala中我们可以编写一个函数来寻找100到999范围内的所有水仙花数。这里是一个简单的示例:
```scala
def is narcissisticNumber(num: Int): Boolean = {
val digits = num.toString.map(_.asDigit).toList
digits.zipWithIndex.map { case (digit, index) => digit * digit * digit == digits(index) }.foldLeft(true)(_ && _)
}
val start = 100
val end = 999
val narcissisticNumbers = (start to end).filter(isNarcissisticNumber)
println(s"100到999之间的水仙花数有: $narcissisticNumbers")
```
在这个代码里,`isNarcissisticNumber`函数用于检查一个数是否是水仙花数,然后我们遍历从100到999的所有整数,筛选出符合条件的。
阅读全文