#include <stdioh>
main()
{
// (提示:四叶玫瑰数是指一个四位数,它的每个位上的数字的4次幂之和等于它本身)
int rose,one,two,three,four;
scanf("%d",&rose);//
four=rose/1000;
three=rose/100%10;
two=rose/10%10;
one=rose%10;
four=fourfourfourfour;
three=threethreethreethree;
two=twotwotwotwo;
one=oneoneoneone;
if((four+three+two+one)==rose)
printf("%d",rose);
}
水仙花数只是自幂数的一种,严格来说三位数的3次幂数才成为水仙花数。
如153=1^3+5^3+3^3,这种数称为水仙花数。
若是10000以内,则必有四位数,四位自幂数不叫水仙花数,而叫做四叶玫瑰数。
现给一种简单的求水仙花数的代码,自创的。
x=0:9;
y=x;z=x;
[x,y,z]=meshgrid(x,y,z);
u=x^3+y^3+z^3-100x-10y-z;
k=find(u==0&x~=0);
w=[x(k)';y(k)';z(k)']
sxhs=[100w(1,:)+10w(2,:)+w(3,:)]
w =
3 3 1 4
7 7 5 0
0 1 3 7
sxhs =
370 371 153 407
当然你也可以用循环来做
for m=100:999
m1=fix(m/100);
m2=rem(fix(m/10),10);
m3=rem(m,10);
if m==m1m1m1+m2m2m2+m3m3m3
disp(m)
end
end
输出结果为:
153 370 371 407
如果非要求四位数的四叶玫瑰数,有
for m=1000:9999
m1=fix(m/1000);
m2=rem(fix(m/100),10);
m3=rem(fix(m/10),10);
m4=rem(m,10);
if m==m1^4+m2^4+m3^4+m4^4
disp(m)
end
end
输出结果为: 1634 8208 9474
你也可以将后面的两步统一,即
for m=100:9999
m1=fix(m/1000);
m2=rem(fix(m/100),10);
m3=rem(fix(m/10),10);
m4=rem(m,10);
if (m==m1^4+m2^4+m3^4+m4^4)|m==m2^3+m3^3+m4^3
disp(m)
end
end
输出结果为:
153
370
371
407
1634
8208
9474
第一种方式分离每位数字:
#include<stdioh>
int main()
{
int a,b,c;
int i;
for(i=100;i<1000;i++)
{
a=i%10;
b=i/10%10;
c=i/100;
if(i==aaa+bbb+ccc)
{
printf("%d\n",i);
}
}
return 0 ;
}
第二种方式:三重for循环
#include<stdioh>
int main()
{
int a,b,c;
int i,j,k;
for(i=1;i<=9;i++)
{
for(j=0;j<=9;j++)
{
for(k=0;k<=9;k++)
{
if(iii+jjj+kkk==i100+j10+k)
{
printf("%d%d%d\n",i,j,k);
}
}
}
}
printf("\n");
return 0 ;
}
扩展资料:
水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。
附:其他位数的自幂数名字
一位自幂数:独身数
两位自幂数:没有
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数
常见水仙花数
水仙花数又称阿姆斯特朗数。
三位的水仙花数共有4个:153,370,371,407;
四位的四叶玫瑰数共有3个:1634,8208,9474;
五位的五角星数共有3个:54748,92727,93084;
六位的六合数只有1个:548834;
七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;
八位的八仙数共有3个:24678050,24678051,88593477
……
使用高精度计算,可以得到超过int类型上限的水仙花数:
5: 93084
5: 92727
5: 54748
6: 548834
7: 9800817
7: 4210818
7: 1741725
7: 9926315
8: 24678050
8: 24678051
8: 88593477
9: 146511208
9: 912985153
9: 472335975
9: 534494836
10: 4679307774
11: 32164049650
11:40028394225
11: 42678290603
11: 49388550606
11: 32164049651
11: 94204591914
11: 44708635679
11: 82693916578
14: 28116440335967
16: 4338281769391370
16: 4338281769391371
17: 21897142587612075
17: 35641594208964132
17: 35875699062250035
19: 1517841543307505039
19: 3289582984443187032
19: 4929273885928088826
19: 4498128791164624869
20: 63105425988599693916
21: 449177399146038697307
21: 128468643043731391252
23: 27907865009977052567814
23: 35452590104031691935943
23: 27879694893054074471405
23: 21887696841122916288858
24: 174088005938065293023722
24: 188451485447897896036875
(为环保起见,24位以上的水仙花数略)
最大的水仙花数有39位。十进制自然数中的所有水仙花数共有88个。
水仙花数是指一个n位数,每一位数字的n次幂的和正好等于这个数本身。
比如:153
=
1^3
+
5^3
+
3^3
水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,水仙花数是指一个
3
位数,它的每个位上的数字的
3次幂之和等于它本身。
水仙花数只是自幂数的一种,严格来说3位数的3次幂数才称为水仙花数。
:
三位的水仙花数共有4个:153,370,371,407;
四位的四叶玫瑰数共有3个:1634,8208,9474;
五位的五角星数共有3个:54748,92727,93084;
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)