用C语言编写程序实现下面要求"水仙花数" 是指一个三位正整数,其各位上的数字的立方和等于该数本身。如:1^3+5^3+3^3=153,因此153是一个水仙花数。输入两个三位正整数a和b(其中a<=b),求[a,b]范围内水仙花数的个数。
时间: 2024-02-24 17:53:28 浏览: 78
c语音水仙花数.zip
好的,这是一个简单的算法题,可以用C语言编写程序来解决。以下是实现该算法的代码:
```c
#include <stdio.h>
int is_narcissistic(int num) {
int sum = 0, temp = num;
while (temp > 0) {
int digit = temp % 10;
sum += digit * digit * digit;
temp /= 10;
}
return sum == num;
}
int main() {
int a, b, count = 0;
scanf("%d%d", &a, &b);
for (int i = a; i <= b; i++) {
if (is_narcissistic(i)) {
count++;
}
}
printf("%d\n", count);
return 0;
}
```
在这个程序中,我们首先定义了一个 `is_narcissistic` 函数来判断一个数是否为水仙花数。这个函数会将数的每一位取出来,计算它们的立方和,最后与原数比较。如果相等,说明这个数是水仙花数,返回 `1`;否则返回 `0`。
接下来在主函数中,我们通过输入两个三位正整数 `a` 和 `b`,然后遍历 `[a,b]` 的所有数,判断它们是否为水仙花数。如果是,我们就将计数器 `count` 加一。最后输出 `count` 即可。
希望能够解答您的问题。
阅读全文