水仙花数:一个三位数,其按位立方之和等于该数本身,该数称为水仙花数。求出100 - 1000 # 一个三位数,其按位立方之和等于该数本身
时间: 2023-12-03 19:43:03 浏览: 7
水仙花数是指一个三位数,其各位数字的立方和等于该数字本身。我们可以使用循环遍历100到999之间的所有数字,并判断其是否为水仙花数。
具体实现如下:
```python
for i in range(100, 1000):
# 将数字转换为字符串,以便按位获取数字并计算立方和
num_str = str(i)
sum = 0
for digit in num_str:
sum += int(digit) ** 3
if sum == i:
print(i)
```
输出结果为:
```
153
370
371
407
```
因此,100到1000之间的水仙花数有4个,分别为153、370、371、407。
相关问题
C++编写一个函数,判断某一个数是否为水仙花数。(水仙花数:一个三位数的各位数字的立方和等于该数本身)
以下是C++代码实现:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
bool isNarcissisticNumber(int num) {
int sum = 0;
int temp = num;
while (temp != 0) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
return sum == num;
}
int main() {
int num;
cout << "请输入一个三位数: ";
cin >> num;
if (isNarcissisticNumber(num)) {
cout << num << "是水仙花数" << endl;
} else {
cout << num << "不是水仙花数" << endl;
}
return 0;
}
```
首先定义一个 `isNarcissisticNumber` 函数,接收一个整数参数 `num`,用于判断该数是否为水仙花数。在函数中,我们使用循环依次取出该数的每一位数字,计算各位数字的立方和,最后将计算结果与原数比较,如果相等则返回 `true`,否则返回 `false`。
在 `main` 函数中,我们首先从用户输入中获取一个三位数,然后调用 `isNarcissisticNumber` 函数进行判断,最后输出判断结果。
C语言判断一个三位数是否是“水仙花数”。所谓水仙花数:是指一个三位数,其各位数字的立方之和等于该数。
在C语言中,判断一个三位数是否是“水仙花数”的算法可以通过编写一个函数来实现。下面是一个简单的示例:
```c
#include <stdio.h>
#include <math.h>
// 定义一个函数来检查一个数是否是水仙花数
int is narcissistic(int num) {
int百位 = num / 100; // 取百位数
int十位 = (num % 100) / 10; // 取十位数
int个位 = num % 10; // 取个位数
int sum_of_cubes = pow(bi位, 3) + pow(十位, 3) + pow(个位, 3); // 计算各位立方和
return sum_of_cubes == num; // 如果和等于原数,返回1,否则返回0
}
int main() {
int num;
printf("请输入一个三位数:");
scanf("%d", &num);
if(num >= 100 && num <= 999) {
if(is_narcissistic(num)) {
printf("%d 是水仙花数。\n", num);
} else {
printf("%d 不是水仙花数。\n", num);
}
} else {
printf("输入错误,请输入一个三位数。\n");
}
return 0;
}
```
阅读全文