题目
找出 100~999 之间的水仙花数
思路
本题在 100~999 中找水仙花数:各位数字立方和等于它本身。
对每个三位数,用 /100、/10%10、%10 取出百、十、个位 a,b,c,判断 a³+b³+c³ 是否等于原数,相等则输出。
解题分析
三位数枚举 100~999,拆百十个位算立方和。剪枝:若只判断单个数,直接算;若找全部,暴力扫描范围即可。
完整程序
#include <stdio.h>
int main(void)
{
for (int n = 100; n <= 999; n++) {
int a = n / 100;
int b = n / 10 % 10;
int c = n % 10;
if (a * a * a + b * b * b + c * c * c == n) {
printf("%d\n", n);
}
}
return 0;
}
运行示例
程序不需要从键盘读入,直接运行。输出如下:
153
370
371
407