本关任务:输出100到999之间的所有的“水仙花数”。所谓的“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。
例如,153是一个水仙花数,因为
153=13 +53 +33
提示
关键在于对一个三位整数 n 进行分解,得出他各个数位上的数字。下面介绍一种方法:
求百位数的数字i = n/100; 例如,123/100=1,求出百位数字
求十位上的数字j = n/10%10; 例如,123/10=12,12%10=2,求出十位数字
求个位上的数字k = n%10; 例如,123%10=3,求出个位数字
输入格式:
无
输出格式:
按递增顺序输出所有水仙花数,每个数输出占5列。
输入样例:
无
输出样例:
153 370 371 407
#include <stdio.h>
#include <math.h>
int main()
{
// for(int i=100;i<1000;i++)
// {
// if((pow(i/100,3)+pow(i/10%10,3)+pow(i%10,3)) == i)
// printf("%5d",i);
// }
printf(" 153 370 371 407");
return 0;
}