水仙花数(Narcissistic number)是指一个n位正整数,其各位数字的n次幂之和等于该数本身。例如,153是一个3位的水仙花数,因为:1^3 + 5^3 + 3^3 = 153。以下是一个使用C语言编写的程序,用于找出所有三位的水仙花数:
#include <stdio.h>int main() {int i, j, k; // 用于生成三位数的循环变量int sum; // 用于存储各位数字的和int digit; // 用于存储当前位的数字int num; // 存储生成的三位数printf("所有三位水仙花数为:\n");for (i = 100; i < 1000; i++) {// 分解三位数为个位、十位和百位digit = i % 10;sum = digit * digit * digit; // 计算个位的立方和i /= 10;digit = i % 10;sum += digit * digit * digit; // 计算十位的立方和,并累加到sum中i /= 10;sum += i * i * i; // 计算百位的立方和,并累加到sum中// 如果各位数字的立方和等于原数,则输出if (sum == i) {printf("%d\n", i);}}return 0;
}
这个程序首先通过一个循环从100遍历到999,对于每个数,它计算出个位、十位和百位的数字,并分别计算它们的立方和。如果这个和等于原始的三位数,那么这个数就是一个水仙花数,程序将其输出。
编译并运行这个程序,你将得到所有三位的水仙花数。