c语言求水仙花数的编程用while(c语言水仙花程序while)

http://www.itjxue.com  2023-03-17 10:37  来源:未知  点击次数: 

水仙花数的c语言编程。

所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 1^3 + 5^3+ 3^3?。

下面是完整的C语言编程代码:

运行结果:

result is:153? 370? 371? 407

扩展资料

常见水仙花数

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

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

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

如何用C语言中的while语句编写水仙花数程序

你没有说范围,我下面求的是100~1000之间的水仙花数

#includestdio.h

void

main()

{

int

a,b,c,i;

i=100;

while(i=100)

{i++;

a=i/100;

b=(i-a*100)/10;

c=i%10;

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

printf("%d

",i);

}

}

分别使用while、do-while和for语句编程,找出所有的水仙花数并输出。

For语句

public class numl {

public static void main(String[] args) {

int x, y, z, i, sum;

for(i=100;i1000;i++)

z=i%100%10;

y=i/10;

y=y%10;

x=i/ 100;

sum=x*x*x+y*y*y+z*Z*z;

if (sum=i)

System. out. println (sum+"是水仙花数”) ;

}

}

Whi le语句

public class numl {

public static void main(String[] args) {

int x, y, z, i=100, sum;

while(i1000)

z=i%100%10;

y=i/10;

y=y%10;

x=i/ 100;

sum=x*x*x+y*y*y+z*z*z;

if(sum==i)

System. out. println(sum+”是水仙花数"); .

i++;

}

}

Do-whil e语句

public class numl {

public static void main(String[] args) {

int x, y, z, i=100, sum;

do{

z=i%100%10;

y=i/10;

y=y%10;

x=i/ 100;

sum= Fx*x*x+y*y*y+z*z*z;

if (sum=i)

System. out. println(sum+”是水仙花数”);

} while(i1000) ;

}

扩展资料

do-while循环的与for循环,while循环的区别

一、循环结构的表达式不同

do-while循环结构表达式为:do{循环体;}。

for循环的结构表达式为:for(单次表达式;条件表达式;末尾循环体){中间循环体}。

while循环的结构表达式为:while(表达式){循环体}。

二、执行时判断方式不同

do-while循环将先运行一次,因为经过第一次do循环后,当检查条件表达式的值时,其值为 不成立时而会退出循环。保证了至少执行do{ }内的语句一次。

for循环执行的中间循环体可以为一个语句,也可以为多个语句,当中间循环体只有一个语句时,其大括号{}可以省略,执行完中间循环体后接着执行末尾循环体。

while循环执行时当满足条件时进入循环,进入循环后,当条件不满足时,执行完循环体内全部语句后再跳出(而不是立即跳出循环)。

c语言水仙花数

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

}

扩展资料:

需要注意的地方:

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

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

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

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

参考资料:

百度百科-水仙花数

c语言,求水仙花数(三位数)。用do while?

以下是使用 C 语言 do-while 循环来求解三位数中的水仙花数的代码:

```c

#include stdio.h

#include math.h

int main() {

int i = 100;

do {

int a = i / 100;

int b = i / 10 % 10;

int c = i % 10;

if (i == pow(a, 3) + pow(b, 3) + pow(c, 3)) {

printf("%d ", i);

}

i++;

} while (i 1000);

return 0;

}

```

在上面的代码中,我们使用 do-while 循环来遍历三位数,然后对每个三位数进行水仙花数的判断。其中,使用了三个变量 `a`、`b`、`c` 分别表示当前数值的百位、十位、个位数字。然后判断该三位数是否等于各个数字的立方和,如果是,就打印该数值。

需要注意的是,在计算立方的时候需要使用 `pow` 函数,该函数需要引用 math.h 头文件。

示例输出:

```

153 370 371 407

```

希望这个代码可以帮助你实现你所需的功能。

(责任编辑:IT教学网)

更多

推荐浏览器文章