如果一个四位数等于它的各数位上的数字的4次方的和,则称这个四位数为“玫瑰花数”, 如 ,设计一个程序,

如果一个四位数等于它的各数位上的数字的4次方的和,则称这个四位数为“玫瑰花数”, 如 ,设计一个程序,,第1张

C语言版的。。。BASIC很久没弄了。。不记得怎么搞了。。你看一下思路,自己编吧~~挺简单的

int i,j,k,l,m,n;

for(i=1;i<10;i++)

{

for(j=0;j<10;j++)

{

for(k=0;k<10;k++)

{

for(l=0;l<10;l++)

{

m=i+j+k+l;

n=i1000+j100+k10+l;

if(m==n)

printf("%d",m);

}

}

}

}

#include <dosh>

#include <graphicsh>

#include <mathh>

/玫瑰花/

#define FNX(x) (int)(xo+(x)10)

#define FNY(y) (int)(getmaxy()-(yo+(y)10))

#define FNX2(phi) cos(phi)ac-sin(phi)bs

#define FNY2(phi) cos(phi)as+sin(phi)bc

/画旋转的椭圆/

void elli(int xo,int yo,int a,int b,double theta)

{

int i;

double da,c,s,ac,as,bc,bs,xf,yf,phi,x,y;

theta=theta001745;

da=301745;

c=cos(theta);

s=sin(theta);

ac=ac;as=as;

bc=bc;bs=bs;

x=FNX2(0);

y=FNY2(0);

moveto(FNX(x),FNY(y));

for(i=1;i<=360;i++)

{

phi=ida;

xf=xcos(phi)01;

yf=bsin(phi)01;

x=FNX2(phi);

y=FNY2(phi);

lineto(FNX(x),FNY(y));

}

}

/花/

void hua(int x,int y)

{

register i;

/画粉红色玫瑰/

setcolor(12);

arc(x+65,y-60,150,350,8);

arc(x+66,y-54,300,470,8);

arc(x+65,y-56,30,230,10);

arc(x+64,y-57,300,490,17);

ellipse(x+73,y-30,250,450,27,40);

ellipse(x+59,y-30,100,290,27,40);

ellipse(x+65,y-40,140,270,20,30);

setfillstyle(SOLID_FILL,5);

floodfill(x+65,y-20,12);

/画红色玫瑰/

arc(x,y,150,350,12);

arc(x+1,y+8,280,470,12);

arc(x,y+2,30,230,16);

arc(x,y+3,80,240,28);

arc(x+2,y+8,180,330,22);

arc(x-2,y+2,310,460,25);

ellipse(x-12,y+30,120,300,30,40);

ellipse(x+10,y+28,250,423,30,42);

ellipse(x-4,y+10,290,393,30,40);

setfillstyle(SOLID_FILL,4);

floodfill(x+5,y+31,12);

/画紫色花骨朵/

ellipse(x+120,y+5,0,360,15,25);

setfillstyle(SOLID_FILL,1);

floodfill(x+120,y,12);

/画**花骨朵/

ellipse(x-70,y+10,0,360,14,20);

setfillstyle(SOLID_FILL,14);

floodfill(x-70,y+10,12);

setcolor(10);

/画红花花萼/

ellipse(x-15,y+32,190,310,30,35);

ellipse(x+16,y+32,235,355,26,35);

ellipse(x,y+35,190,350,43,50);

arc(x,y+82,190,350,6);

setfillstyle(SOLID_FILL,2);

floodfill(x,y+75,10);

/画粉花花萼/

ellipse(x+50,y-48,190,320,22,50);

ellipse(x+80,y-48,220,350,22,50);

ellipse(x+65,y-28,180,360,36,50);

floodfill(x+65,y+18,10);

/画主枝/

for(i=0;i<3;i++ )

{

ellipse(x-98,y+100+i,255,371,100,80);

ellipse(x-20,y+30+i,260,358,140,140);

ellipse(x+224,y+20+i,180,218,160,140);

}

/画侧枝/

ellipse(x+70,y+34,180,233,140,140);

ellipse(x,y+40,205,255,100,120);

ellipse(x+135,y-30,209,249,72,120);

ellipse(x,y+20,263,301,100,120);

ellipse(x+85,y-10,278,305,100,120);

ellipse(x+100,y-62,282,308,90,120);

ellipse(x-50,y-10,277,314,30,120);

ellipse(x+70,y+80,222,266,52,120);

ellipse(x-60,y-45,229,266,52,120);

ellipse(x+79,y-45,229,266,52,120);

ellipse(x+84,y,224,273,52,120);

ellipse(x+110,y+40,240,282,100,120);

/画紫花骨朵花萼/

ellipse(x+120,y-6,200,340,17,25);

ellipse(x+120,y+7,160,380,17,27);

floodfill(x+122,y+30,10);

/画黄花骨朵花萼/

ellipse(x-70,y+15,140,390,17,20);

ellipse(x-75,y-10,205,340,10,30);

ellipse(x-60,y-10,195,340,5,30);

floodfill(x-70,y+32,10);

/画叶/

/画右边的叶子/

elli(x+168,y+282,10,20,-40);

elli(x+160,y+252,8,16,260);

elli(x+145,y+270,8,16,-15);

elli(x+156,y+224,10,20,-45);

elli(x+150,y+200,8,16,270);

elli(x+135,y+220,8,16,-10);

elli(x+146,y+144,8,16,-80);

elli(x+130,y+130,6,12,235);

elli(x+125,y+154,7,14,-10);

elli(x+78,y+98,6,12,-90);

elli(x+60,y+90,5,10,180);

elli(x+70,y+109,5,10,-45);

/画左边的叶子/

elli(x-125,y+270,12,24,60);

elli(x-95,y+270,10,20,10);

elli(x-110,y+245,10,20,90);

elli(x-105,y+220,10,20,45);

elli(x-100,y+190,8,16,135);

elli(x-75,y+210,8,16,-45);

/画中间的叶子/

elli(x+65,y+190,10,20,-45);

elli(x+40,y+185,8,16,0);

elli(x+55,y+165,8,16,90);

}

/主程序/

main()

{

int driver=VGA,mode=VGAHI;

registerbgidriver(EGAVGA_driver);

initgraph(&driver,&mode,"C:\TC");

cleardevice();

hua(450,90);

setcolor(2);

rectangle(0,0,639,479);

getch();

closegraph();

}

水仙花数即三位的自幂数。所谓自幂数,就是指一个 n 位数 ( n≥3 ),其每位上的数字的 n 次幂之和等于本身。

所以水仙花数,首先是三位数,形式为abc,同时a,b,c的立方和值与原本数相同。

类似的还有

四位自幂数:四叶玫瑰数

五位自幂数:五角星数

六位自幂数:六合数

等等。

对于水仙花数的判断,需要按照以下步骤:

1 提取该数的个位,十位,百位值。

2 计算三个数的立方和。

3 与原值比较,如相等则是。

要输出所有水仙花数,需要:

1 对所有三位数,即100到999遍历;

2 对每个数判断是否为水仙花数,如是则退出。

当循环结束,所有的水仙花数就输出成功了。

代码如下:

int isNarcissistic(int n)

{

int a = n/100;

int b = n/10%10;

int c = n%10;

return aaa + bbb + ccc == n;

}

int main()

{

int i;

for(i = 100; i< 1000; i ++)

if(isNarcissistic(i)) printf("%d ",i);

}

以上就是关于如果一个四位数等于它的各数位上的数字的4次方的和,则称这个四位数为“玫瑰花数”, 如 ,设计一个程序,全部的内容,包括:如果一个四位数等于它的各数位上的数字的4次方的和,则称这个四位数为“玫瑰花数”, 如 ,设计一个程序,、你是不是有999玫瑰C语言版源代码能给我吗、c语言输出所有得水仙花数,玫瑰花数和五角星数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9758451.html

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

发表评论

登录后才能评论

评论列表(0条)

保存