用c语言编辑一个玫瑰花数(一个四位数,各个数字的4次方之和等于它本身,求出满足条件的所有四位数)的

用c语言编辑一个玫瑰花数(一个四位数,各个数字的4次方之和等于它本身,求出满足条件的所有四位数)的,第1张

#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;

欢迎分享,转载请注明来源:浪漫分享网

原文地址:https://hunlipic.com/langman/481195.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-30
下一篇2023-06-30

发表评论

登录后才能评论

评论列表(0条)

    保存