C语言输入整数m和n(100<= m<=n<=999),输出m~n之间的水仙花数的个数。
时间: 2023-11-06 09:09:52 浏览: 215
C语言经典算法例题求100-999之间的“水仙花数
5星 · 资源好评率100%
水仙花数是指一个n位数(n≥3),其各位数字的n次方之和等于该数本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
下面是C语言代码实现:
```c
#include <stdio.h>
#include <math.h>
int main() {
int m, n, num, sum, count = 0;
printf("输入m和n:");
scanf("%d%d", &m, &n);
for(num = m; num <= n; num++) {
sum = 0;
int temp = num;
int digits = log10(num) + 1; // 计算数字位数
while(temp > 0) {
sum += pow(temp % 10, digits);
temp /= 10;
}
if(sum == num) {
count++;
}
}
printf("m~n之间的水仙花数的个数为:%d\n", count);
return 0;
}
```
首先输入m和n,然后使用for循环遍历m~n之间的整数,对于每个数字,计算各位数字的n次方之和,如果等于该数本身,则将计数器加1。最后输出计数器的值即可。
阅读全文