C语言判断两个数之前是否有水仙花数
时间: 2024-12-16 17:17:22 浏览: 21
在C语言中,判断一个三位数是否为水仙花数(Narcissistic number),是指一个数字等于其各个位上数字的立方和。例如,153是一个水仙花数,因为它等于1^3 + 5^3 + 3^3。
你可以创建一个函数来实现这个功能,步骤如下:
1. 定义一个函数`is_narcissistic(num)`,接受一个整数作为参数。
2. 判断输入的数是否小于100或大于999,因为只有三位数才可能是水仙花数。
3. 将数字分解成百位、十位和个位的数字,可以使用除法和取余运算。
4. 计算每个位上的立方,然后将它们相加,如果结果等于原数,返回true,否则返回false。
下面是一个简单的C程序示例:
```c
#include <stdio.h>
int cube(int digit) {
return digit * digit * digit;
}
bool is_narcissistic(int num) {
if (num < 100 || num > 999) {
return false;
}
int hundreds = num / 100; // 百位
int tens = (num % 100) / 10; // 十位
int units = num % 10; // 个位
int sumOfCubes = cube(hundreds) + cube(tens) + cube(units);
return sumOfCubes == num;
}
int main() {
int num;
printf("请输入一个三位数: ");
scanf("%d", &num);
if (is_narcissistic(num)) {
printf("%d 是水仙花数\n", num);
} else {
printf("%d 不是水仙花数\n", num);
}
return 0;
}
```
阅读全文