用C++编程:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.

2024-11-14 10:35:07
推荐回答(3个)
回答1:

main()

{

 int n,a,b,c;

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

{

a=n/100;

b=n%100/10;

c=n%10;

 if(a*a*a+b*b*b+c*c*c==n)  printf("%d\n",n);

}

}

水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。

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

加一下就可以了,

153+370+371+407=1301

你可以用程序来找到他们,比如用我会的pascal语言就是:

program shuixianhuashu;

var

a,b,c:integer;

begin

for a:=1 to 9 do

for b:=0 to 9 do

for c:=0 to 9 do

if a*a*a+b*b*b+c*c*c=100*a+10*b+c then writeln(100*a+10*b+c);

end.

或:

program sxh;

var a,b,c,d:integer;

begin

for a:=100 to 999 do begin

b:=a mod 10;

c:=a mod 100 div 10;

d:=a div 100;

if b*b*b+c*c*c+d*d*d=a then writeln(a);

end;

end.

也可用C语言:

#include

int main(void)

{

int a,b,c;

for(a=1;a<=9;a++)

for(b=0;b<=9;b++)

for(c=0;c<=9;c++)

if(100*a+10*b+c==a*a*a+b*b*b+c*c*c)

printf("%d%d%d\n",a,b,c);

return 0;

}

扩展资料:

水仙花数又称阿姆斯特朗数。

三位的水仙花数共有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:

#include "stdio.h"

int main(void)
{
int i,j,k,num;
printf("水仙花数为:");
for(num=100;num<1000;num++)
{
i=num/100;//取百位数字
j=num/10%10;//取十位数字
k=num%10;//取个位数字
if(num==i*i*i+j*j*j+k*k*k)
{
printf("%-5d",num);
}
}
printf("\n");
return 0;
}

回答3:

#include
int main()

{
int i,j,k,l;
for(l=100;l<1000;l++)
{
i=l/100;
j=l%100/10;
k=l%10;
if(i*i*i+j*j*j+k*k*k==l)
printf("%d ",l);
}
}