编写代码,输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身
(2)对于每个数,先求出这个3位数的百位,十位,个位上分别是多少,分别用a、b、c存放;
(3)再判断,是否有“其各位数字立方和等于该数本身”这样的性质。 展开
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 <stdio.h>
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
参考资料来源:百度百科-水仙花数
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);
}
}
2020-09-30
#include <iostream>
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<<a<<"为水仙花数"<<endl;
}
}
结果:
153为水仙花数
370为水仙花数
371为水仙花数
407为水仙花数