ZKX's LAB

所有的水仙花数 c语言 输出所有水仙花数

2021-04-05知识0

打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方之和等于该数本身 水仙花数:abc=a^3+b^3+c^3法一:includeincludevoid main(){int n,a,b,c;printf(\"水仙花数:\\n\");for(n=100;n;n+){a=n%10;b=n/10%10;c=n/100;if(a*a*a+b*b*b+c*c*c=n){printf(\"%d\",n);}}}法二:includeincludevoid main(){int s,t,a,b,c;printf(\"水仙花数:\\n\");for(a=1;a;a+)for(b=0;b;b+)for(c=0;c;c++){s=a*a*a+b*b*b+c*c*c;t=a*100+b*10+c;if(s%t=0)printf(\"%d\",t);}}望采纳~

输出所有的“水仙花数” 水仙花数是指一个 n 位数(n>;=3),它的每个位上的数字的 n 次幂之和等于它本身.所以n位数的水仙花数就是将其每一位的n次方相加.看是否等于其本身.三位的水仙花数共有4个:。

如何求所有的水仙花数。 1.首先你这程序中少了x+;这条语句,2113会进入死循5261环的2.if(a*a*a=b*b*b+c*c*c=x)\"等号\"写错了,改成 if(a*a*a+b*b*b+c*c*c=x)3.printf(%d\\n\",x);少了个双引号 改成 printf(\"%d\\n\",x);还有除了这种方4102法外还有其他好的方法吗?算法部分1653可以改改a=x/100;b=(x-a*100)/10;c=x-a*100-b*10;改成a=x/100;c=x%10;求余数专,得到个位数,b=x/10;去掉个位数,b=b%10;求余数,得到十位属数,我用循环写了个程序,可以参考下:includeint main(){int i,a,b,c;for(i=100;i;i){a=i%10;b=i/100;c=i/10;c=c%10;if(a*a*a+b*b*b+c*c*c=i)printf(\"%d\\n\",i);}getch();return 0;}

#所有的水仙花数

随机阅读

qrcode
访问手机版