春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身。现在要求输出所有在m和n范围内的水仙花数。 要求定义一个narcissus()函数判断一个整数n是否为水仙花数,其余功能在main()函数中实现,narcissus()函数的结构如下: int narcissus(int n) { //判断n是否为水仙花数, 若是函数返回1,否则返回0。 } 输入输出说明: 输入两个整数m和n(100<=m<
时间: 2024-02-05 08:12:40 浏览: 81
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身
5星 · 资源好评率100%
首先,我们需要编写一个函数narcissus()来判断一个整数是否为水仙花数。根据题目定义,我们可以将该整数的个位、十位和百位分别取出来,并计算它们的立方和是否等于该整数本身。如果等于,则该整数是水仙花数,返回1;否则返回0。
下面是代码实现:
```python
int narcissus(int n) {
int sum = 0, temp = n;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if (sum == n) {
return 1;
} else {
return 0;
}
}
```
接下来,在main()函数中读入输入的两个整数m和n,并遍历m到n范围内的所有整数,判断它们是否为水仙花数。如果是,则输出该数。完整代码如下:
```python
#include <stdio.h>
int narcissus(int n) {
int sum = 0, temp = n;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
if (sum == n) {
return 1;
} else {
return 0;
}
}
int main() {
int m, n;
scanf("%d%d", &m, &n);
for (int i = m; i <= n; i++) {
if (narcissus(i)) {
printf("%d\n", i);
}
}
return 0;
}
```
运行程序,输入m和n的值,即可输出在该范围内的所有水仙花数。
阅读全文