C语言 打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。

例如,153是一个水仙花数,因为153=13+53+33。
2024-11-29 01:42:23
推荐回答(3个)
回答1:

#include "stdio.h"

#include "conio.h"

main()

{

int i,j,k,n;

printf("'water flower'number is:");

for(n=100;n<1000;n++)

{

i=n/100;/*分解出百位*/

j=n/10%10;/*分解出十位*/

k=n%10;/*分解出个位*/

if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

printf("%-5d",n);

}

getch();

}

扩展资料:

常见水仙花数

三位的水仙花数共有4个:153,370,371,407;

四位的四叶玫瑰数共有3个:1634,8208,9474;

五位的五角星数共有3个:54748,92727,93084;

六位的六合数只有1个:548834;

七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;

八位的八仙数共有3个:24678050,24678051,88593477

回答2:

打印100-999之间的水仙花数!

方法1:
main()
{
int a,b,c,d;
for(a=100;a<=99;a++)
b=a/100;
c=a/10-b*10;
d=a-b*100-c*10;
if(b*b*b+c*c*c+d*d*d==a) printf("%d",a);
}

方法2:
main()
{
int i,j,k;
for(i=1;i<=9;i++)
for(j=1;j<=9;j++)
for(k=1;k<=9;k++)
{
if((i*i*i+j*j*j+k*k*k)==(i*100+j*10+k))
printf("%d",i*100+j*10+k);
}
}

回答3: