题目:用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语言程序(详解) |
下一篇: 题目:将一个正整数分解质因数。例 |