题目:水仙花数的个数 描述:"水仙花数" 是指一个三位正整数,其各位上的数字的立方和等于该数本身。如:1^3+5^3+3^3=153,因此153是一个水仙花数。输入两个三位正整数a和b(其中a<=b),求[a,b]范围内水仙花数的个数。 输入输出示例 : 输入: 100,999 输出: 4
时间: 2024-02-16 16:04:38 浏览: 141
题目分析:
题目要求我们找出[a,b]范围内的水仙花数的个数,其中a和b都是三位正整数。因此,我们可以使用循环来枚举[a,b]范围内的所有数字,然后判断每个数字是否是水仙花数即可。
判断一个三位数是否为水仙花数,可以通过将其个位、十位和百位上的数字分别取出来,计算它们的立方和,如果等于该数字本身,则说明该数字是水仙花数。
代码实现:
```c
#include <stdio.h>
int main() {
int a, b, count = 0;
scanf("%d,%d", &a, &b);
for (int i = a; i <= b; i++) {
int digit1 = i / 100; // 百位数字
int digit2 = (i / 10) % 10; // 十位数字
int digit3 = i % 10; // 个位数字
if (i == digit1 * digit1 * digit1 + digit2 * digit2 * digit2 + digit3 * digit3 * digit3) {
count++;
}
}
printf("%d", count);
return 0;
}
```
首先,我们使用 scanf 函数输入a和b的值,然后使用for循环遍历[a,b]范围内的所有数字。
在循环中,我们将当前数字的百位、十位和个位数字分别取出来,并计算它们的立方和。如果等于该数字本身,则计数器count加1。
最后,我们输出count的值,即为[a,b]范围内水仙花数的个数。
输入样例:
```
100,999
```
输出样例:
```
4
```
阅读全文