C语言:输出100-999中所有水仙花数。

三位数ABC,如果A³+B³+C³=ABC,那么这个数就称作水仙花数。例如153=1³+5³+3³。153就称作水仙花数。
这是已写的。。。但是结果在一行。。。。要求输出每个数字占一行,怎么让结果每个数字占一行?。。
#include<stdio.h>
int main()
{
int i,a,b,c;
for(i=100;i<=999;i++)
{
a=i/100;
b=i/10%10;
c=i%10;
if(i == a*a*a + b*b*b + c*c*c)
printf("%d is a daffodil number.", i);
}
return 0;
}

//输出水仙花

voidNarcissusNumber()

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

{

intsum=0;

inttemp=i;

intrem;

for(intj=0;j<3;j++)

{rem=temp%10;

temp/=10;

sum+=rem*rem*rem;

}if(sum==i)

{

printf("%d\n",i);

}

}

}

扩展资料

C语言:输出9*9口诀

#include"stdio.h"

main()

{

inti,j,result;

printf("\n");

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

{for(j=1;j<10;j++)

{

result=i*j;

printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/

}

printf("\n");/*每一行后换行*/

}

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-21

在100-999之间的三位数ABC,满足A³+B³+C³=ABC,就称ABC为水仙花数。

根据你的描述和提供的代码,只需要对输出的结果进行换行即可,修改后的代码如下:

#include<stdio.h>

int main()

{

int i,a,b,c;

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

{

a=i/100;

b=i/10%10;

c=i%10;

if(i == a*a*a + b*b*b + c*c*c)

printf("%d is a daffodil number.\n", i);

}

return 0;

}

程序运行结果:

扩展资料:

除了上面使用的C语言实现外,常用的实现语言还有;

ALGOL代码实现“水仙花数”:

begin

integer i,j,k;

for i := 1 step 1 until 9 do

for j := 0 step 1 until 9 do

for k := 0 step 1 until 9 do

if i×i×i + j×j×j + k×k×k = 100×i + 10×j + k then

print (100×i + 10×j + k);

end

PHP代码实现“水仙花数”:

<?php

//使用系统自带函数,即可实现幂运算,何必画蛇添足,自己写函数

functionis_narcissistic($n)

{

$hundreds=floor($n/100);//分解出百位

$tens=floor($n/10)%10;//分解出十位

$ones=floor($n%10);//分解出个位

return(bool)(pow($hundreds,3)+pow($tens,3)+pow($ones,3)==$n);

}

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

{

if(is_narcissistic($i))

echo$i."\n";

}

die();

?>

参考资料:

本回答被网友采纳
第2个回答  推荐于2018-02-16

    水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。判断一个数是否为水仙花数需要拆分数位,求幂再相加。不过这道题限定了范围,都是三位数,所以可以使用3重循环分别代表3个数位,这样就省去了拆分的麻烦。

    代码如下:

#include <stdio.h>

int main()
{
int i, j, k, sum;

sum = 0;

for (i = 1; i < 10; i++)
for (j = 0; j < 10; j++)
for (k = 0; k < 10; k++)
if ((i*i*i + j*j*j + k*k*k) == (i*100 + j*10 + k))
                            printf("%d\n", i*100 + j*10 + k);

return 0;
}

第3个回答  2020-03-02

C语言经典案例之水仙花数

第4个回答  2013-11-29
printf("%d is a daffodil number.\n", i); // <-- 加个 \n

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网