您现在的位置是:影视综艺

C语言编程输出所有的“水仙花数”。,c语言水仙花数

2020-10-10 09:34影视综艺

简介C语言输数的具体和实现流程如下:1、水仙花数的含义“水仙花数”是一个三位数位数字的立方和等于该数本身。例如:3^3 + 7^3+ 0^3 = 3702、算法分析把给出的某个三位数的个位、十位、百位分别 C语言编程输出所有的“水仙花数”。...

C语言输数的具体和实现流程如下:

1、水仙花数的含义

“水仙花数”是一个三位数位数字的立方和等于该数本身。例如:3^3 + 7^3+ 0^3 = 370

2、算法分析

把给出的某个三位数的个位、十位、百位分别拆分,并求其立方和(设为sum),若sum与给出的三位数相等, 则为“水仙花数”。

3、算法设计

“水仙花数”是一个三位数,可以确定该数的取值范围是 100〜999。对应的循环条件如下:

for (n=10; n<1000; n++) {}

将n整除以100,得出n在百位上的数字h。

将(n-i*100)整除以10, 得出n在十位上的数字t。

将n对10取余,得出n在个位上的数字a。

求得h,t,a 三个数字的立方和是否与n相等,如果相等则证明该数为水仙花数。

4、代码实现

#include <stdio.h>

int main() {

int h, t, a, n;

printf("result is:");

for ( n=100; n<1000; n++ )  { /*整数的取值范围*/

h = n / 100;

t = (n-h*100) / 10;

a = n % 10;

if (n == h*h*h + t*t*t + a*a*a)  /*各位上的立方和是否与原数n相等*/

printf("%d  ", n);}

printf("\n");

return 0;}

扩展资料:

常见水仙花数

水仙花数又称阿姆斯特朗数。

1、三位的水仙花数共有4个:153,370,371,407;

2、四位的四叶玫瑰数共有3个:1634,8208,9474;

3、五位的五角星数共有3个:54748,92727,93084;

4、六位的六合数只有1个:548834;

5、七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;

6、八位的八仙数共有3个:24678050,24678051,88593477

参考资料来源:百度百科-水仙花数

-

下面是更多关于水仙花数的问答

#include <stdio.h>

int main()

{

int start, end, i = 0, a, b, c, size = 0;

while (scanf("%d %d", &start, &end) == 2)

{

for (i = start; i <= end; i++)

{

a = i / 100;

b = i / 10 % 10;

c = i % 10;

//total = pow(c, 3) + pow(a, 3) + pow(b, 3);

if ((a*a*a + b*b*b + c*c*c) == i)  //满足水仙花

{

if (size == 0)   //size=0输出第一个水仙花数 

{

printf("%d", i);

}

else     //size++输出第二。。第n个水仙花数

{

printf(" %d", i);

}

size++;   //个数++;

}

}

if (size == 0)   //范个数为0,则说有满足条件的

{

printf("no");

}

printf("\n");

}

return 0;

}

百度百科-水仙花数

本回答被网友采纳

C语言计算出"水仙花"代下:

运行结果如下:

扩料

解题思路:这里提供了一种算法,即使用三个for循环确定三位数字,最外层的for循环即确定百位上的数字,不为0即只在1~9之间循环,同理,其他的两个for循环即确定十位和个位的数字,可在0~9之间循环。然后使用了一个核心的判断语句,当这个数值等于i^3+j^3+k^3时,才输出结果,这样就得出了水仙花数。

水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。

本回答被网友采纳

C写水仙花数要将给出的三位数的个位位、百位分别拆分,并求其立(s),若s与给出的三位数相等, 三位数为“水仙花数”,反之,则不是水仙花数。

#include <stdio.h>

int main()

{

int hun, ten, ind, n;

printf("result is:");

for( n=100; n<1000; n++ )  /*整数的取值范围*/

{

hun = n / 100;

ten = (n-hun*100) / 10;

ind = n % 10;

if(n == hun*hun*hun + ten*ten*ten + ind*ind*ind)  /*各位上的立方和是否与原数n相等*/

printf("%d  ", n);

}

printf("\n");

return 0;

}

扩展资料

C语言水仙花数代码设计思想:

1、将n整除以100,得出n在百位上的数字hun。

2、将(n-i*100)整除以10(或将n先整除以10再对10求模n/10%10),得出n在十位上的数字ten。

3、将n对10取余,得出n在个位上的数字ind。

4、求得这三个数字的立方和是否与其本身相等,若相等,则该数为水仙花数。

水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身 。

参考资料:百度百科—水仙花数

本回答被网友采纳 main()

{

int ge,shi,bai,number; /*定义个十位,百位*/

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

{

bai=number/100;

shi=(number%100)/10;

ge=number%10;

if(number==bai*bai*bai+shi*shi*shi+ge*ge*ge) /*若满足条件则显示*/

printf("\nnumber=%d\n",number);

}

getch();

}

楼把另外2种算法 仔细描么?谢谢

找出所有3位水的程序:

#include<stdio.h>

int main()

{

 int i,a,b,c;

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

 {

  a=i/100;    //百位数

  b=i/10%10;  //数

  c=i%10;     //个位数

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

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

 }

 getch();

}

括号错

#include<stdio.h>

int main()

{

int i,j,k,n;

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

{

i=n/100;

j=n/10-i*10;

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

printf("%d/n",n);

} //应该查也括进去!

return 0;

}
追问
好的,谢谢
追答
不客气

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

}

程序运行结果:

本回答被网友采纳

#include <stdio.h>

int main()

{

int i,a,b,c,j=0,f[1000];

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

{

a=i%10; b=i/10%10;c=i/100;

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

f[j++]=i;

}

for(int k=0;k<j;k++)

{

printf("%d ",f[k]);

}

printf("\n");

for(int k=j-1;k>=0;k--)

{

printf("%d ",f[k]);

}

return 0;

}

Tags:水仙花数,c语言水仙花数,C语言编程输出所有的“水仙花数”。