c语言输入两个三位数m和n,输出m和n之间的水仙花数。水仙花数是一个3位数,各位数字的立方和等于该数本身
时间: 2024-05-25 16:18:09 浏览: 136
#include <stdio.h>
int main()
{
int m, n, i, j, k, sum;
printf("请输入两个三位数m和n(m<n):");
scanf("%d%d", &m, &n);
for(i=m; i<=n; i++)
{
j = i/100; //百位数
k = i%10; //个位数
sum = j*j*j + (i-j*100-k)/10*(i-j*100-k)/10*(i-j*100-k)/10 + k*k*k; //立方和
if(sum == i) //是水仙花数
{
printf("%d是水仙花数\n", i);
}
}
return 0;
}
相关问题
输出给定范围内的水仙花数。输入两个整数m和n(m、n是三位整数,且m<n),输出m到n之间的水仙花数,每个数后面有一空格。如果m到n之间没有水仙花数,则输出“no”。水仙花数是指一个n位数(n=3),它的每个位上的数字的n次幂之和等于它本身c语言
好的,我的回答如下:
```c
#include <stdio.h>
#include <math.h>
int main() {
int m, n;
printf("请输入两个三位数m和n(m < n):");
scanf("%d %d", &m, &n);
int flag = 0; // 用于判断是否有水仙花数
for (int i = m; i <= n; i++) {
int sum = 0;
int temp = i;
while (temp) {
int digit = temp % 10;
sum += pow(digit, 3);
temp /= 10;
}
if (sum == i) {
printf("%d ", i);
flag = 1;
}
}
if (!flag) {
printf("no");
}
printf("\n");
return 0;
}
```
解释一下代码:首先读入两个三位数m和n,然后遍历m到n之间的所有整数,对于每一个整数i,计算它每个位上数字的3次幂之和sum,如果sum等于i,则说明i是水仙花数,输出i,并设置flag为1。最后如果flag仍为0,则说明m到n之间没有水仙花数,输出"no"。
希望我的回答能够帮到你,有其他问题可以继续问我哦!
用c语言,输出给定范围内的水仙花数。输入两个整数m和n(m,n是三位整数,且m<n),输出m到n之间的水仙花数,每个数后面有一个空格。如果m到n之间没有水仙花数,则输出“no”。
好的,以下是C语言代码实现:
```c
#include <stdio.h>
#include <math.h>
int isNarcissistic(int num) {
int sum = 0, temp = num, digit;
int n = (int)log10(num) + 1;
while (temp > 0) {
digit = temp % 10;
sum += pow(digit, n);
temp /= 10;
}
return num == sum;
}
int main() {
int m, n;
scanf("%d %d", &m, &n);
int found = 0;
for (int i = m; i <= n; i++) {
if (isNarcissistic(i)) {
printf("%d ", i);
found = 1;
}
}
if (!found) {
printf("no");
}
return 0;
}
```
代码思路解释:
首先定义一个 `isNarcissistic` 函数,用于判断一个数是否是水仙花数。该函数接收一个整数参数 `num`,并返回一个 `int` 类型的值。
在 `isNarcissistic` 函数内部,我们使用 `log10` 函数获取 `num` 的位数,并使用循环获取每一位的数字,计算每个数字的 n 次方之和。最后与原数字比较,如果相等则说明是水仙花数。
在 `main` 函数中,我们首先读取输入的 `m` 和 `n`,然后使用 `for` 循环遍历 `m` 到 `n` 之间的所有整数,调用 `isNarcissistic` 函数判断是否是水仙花数,如果是则输出该数,并将 `found` 标记为 1,表示找到了水仙花数。如果 `found` 仍然为 0,则说明没有找到水仙花数,输出 "no"。
阅读全文
相关推荐
![java](https://img-home.csdnimg.cn/images/20250102104920.png)
![text/x-c++](https://img-home.csdnimg.cn/images/20250102104920.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)