1352: 特殊水仙花数
题目描述
打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为153=1^3+5^3+3^3。先要求输出特殊的水仙花数,不仅仅是有三位数,还包括四位数,五位数,六位数,比如
五位数92727 = 9^5+2^5+7^5+2^5+7^5, 五位数就是万,千,百,十,个每位数的5次方,其他位数类似。
输入
第一行输入要测试的组数n
接着输入要测试的位数num (3<=num<=6),3代表3位数,4代表4位数,5代表5位数,6代表6位数
输出
输出要测试位数的特殊水仙花数,每输出一个换一行。
样例输入 复制
4
3
4
5
6
样例输出 复制
153
370
371
407
1634
8208
9474
54748
92727
93084
548834
提示
#include <stdio.h>
int main(void)
{
int n;
int num;
int i,ie;
int j;
int a,b,c,d,e,f;
scanf("%d",&n);
while(n--)
{
scanf("%d",&num);
switch(num)
{
case 3: //三位数
i = 100;ie = 999;
for(j = i; j <= ie;j++)
{
a = j % 10;
b = j /10 % 10;
c = j / 100;
if(j == a*a*a+b*b*b+c*c*c)
{
printf("%d\n",j);
}
}
break;
case 4: //四位数
i = 1000;ie = 9999;
for(j = i; j <= ie;j++)
{
a = j % 10;
b = j/10 % 10;
c = j / 100 % 10;
d = j / 1000;
if(j == a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d)
{
printf("%d\n",j);
}
}
break;
case 5:
i = 10000;ie = 99999;
for(j = i; j <= ie;j++)
{
a = j % 10;
b = j /10 % 10;
c = j / 100 % 10;
d = j / 1000 % 10;
e = j / 10000;
if(j == a*a*a*a*a+b*b*b*b*b+c*c*c*c*c+d*d*d*d*d+e*e*e*e*e)
{
printf("%d\n",j);
}
}
break;
case 6:
i = 100000;ie = 999999;
//填入代码
break;
}
}
return 0;
}