编写代码,输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身

2024-12-01 08:38:11
推荐回答(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:

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);
      }
}

回答3:

这是用C++
#include
using namespace std;

int main(){

int a;
int x,y,z;
for (a=100;a<=999;a+=1){
z=a%10;
y=(a%100-a%10)/10;
x=(a-a%100)/100;
if (x*x*x+y*y*y+z*z*z==a) {
cout<}
}
结果:
153为水仙花数
370为水仙花数
371为水仙花数
407为水仙花数