首页 > 分享 > 【C语言】打印水仙花数

【C语言】打印水仙花数

题目:用C语言打印1000以内的水仙花数,“所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。 

           例如:153是一个“水仙花数”,因为153=1^3+5^3+3^3(1的三次方+5的三次方+3的三次方)

解题思路一:在100~1000以内的整数中逐个判断,先求出该数各个数位的数字,然后各个数位数字三次方和这个数比较,等于这个数说明为水仙花数

解法1:用for循环实现

#include<stdio.h>

int main()

{

int i;

int a,b,c;//a为个位数字,b为十位数字,c为百位数字

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))

{

printf("%dn",i);

}

}

return 0;

}

 解法2:用while循环实现

#include <stdio.h>

int main()

{

int i=100;

int a,b,c;//a为个位数字,b为十位数字,c为百位数字

while(i>=100 && i<1000)

{

a=i%10;

b=i/10%10;

c=i/100;

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

{

printf("%dn",i);

}

i++;

}

return 0;

}

运行结果:

解法思路2:分别从三个位上的数字入手, 如果这三个数的立方和等于这个三个数的组合,则说明这个组合数就是水仙花数。

解法3:用for循环实现

#include <stdio.h>

int main()

{

int i; //c,b,a形成的组合数

int a,b,c; //a为个位数字,b为十位数字,c为百位数字

for(c=1;c<=9;c++)

{

for(b=0;b<=9;b++)

{

for(a=0;a<=9;a++)

{

i=c*100+b*10+a;

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

{

printf("%dn",i);

}

}

}

}

return 0;

}

 运行结果:

相关知识

C语言:输出所有的水仙花数
vs水仙花数c语言代码,求水仙花数c语言代码怎么写
打印水仙花数
水仙花数C语言代码优化
打印“水仙花数”
C语言编写水仙花数
1028: 判断水仙花数(C语言)
水仙花数,C语言
【C语言】求水仙花数(完整代码)
C语言:PAT练习:水仙花数( T & F)

网址: 【C语言】打印水仙花数 https://m.huajiangbk.com/newsview501880.html

所属分类:花卉
上一篇: 一个简单的C语言程序(详解)
下一篇: 题目:将一个正整数分解质因数。例