打印所有的水仙花数(三位数的立方和等于数本身),例如。C语言
时间: 2024-12-22 15:15:58 浏览: 13
在C语言中,水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153。我们可以编写一个小程序来找出所有这样的三位数。
这是一个简单的C语言示例:
#include <stdio.h>
#include <stdbool.h>
bool is narcissistic_number(int num) {
int digits[4]; // 因为包括0的立方也可能是三位数
int sum = 0;
// 将数字分解成数组
while(num > 0) {
digits[num % 10]++;
num /= 10;
}
// 计算每一位的立方并加总
for(int i = 0; i <= 3; i++) {
if(digits[i] > 0) {
sum += pow(i, digits[i]);
}
}
// 判断是否为水仙花数
return sum == num;
}
int main() {
for(int i = 100; i <= 999; i++) {
if(is_narcissistic_number(i)) {
printf("%d ", i); // 输出找到的水仙花数
}
}
return 0;
}
这个程序会从100到999遍历每个三位数,并使用is_narcissistic_number
函数检查它是否满足水仙花条件。如果是,就将其打印出来。
相关推荐


















