C语言中循环结构非常经典的例题,求水仙花数。首先确定什么是水仙花数,即一个3位数,其每位数字的立方和等于该数字。
分析该题:1、首先是3位数,所以这个数的取值范围为100~1000,左闭右开。
2、是每个数字的立方,所以要分离出这三位数中的三个数。
思路:1、既然要求目标数字,已经确定好了范围,那应该使用for循环语句
2、分离各个位的数字应该利用除法求商、求余来解决(使用到的符号 \,%)
上代码!
#include <stdio.h>
main()
{
int a=0,i=0,j=0,k=0;//a为要求的数字,i是百位数,j是十位数,k是个位数
printf("水仙花数是:");
for(a=100;a<1000;a++)
{
i=a/100;
j=a/10%10;
k=a%10;
if(i*i*i+j*j*j+k*k*k==a)
printf("%4d",a);
}
printf("\n");
}
运行结果:
如果有老铁有简单的方法可以联系我,一起交流下~!