一、题目
编程实现找出所有的“水仙花数”,所谓水仙花数是一个三位正整数。其各位数字的立方和等于该数本身。例如:153是一个水仙花数,因为111+555+333=153.
二、水仙花数
水仙花数即分别取出该数的个位,十位 ,百位立方相加等于该数即可。这里以i=153为例:
i%10 153%10=3 这里即表示取出个位的数
i/10%10 153/10%10=5 这里即表示取出十位的数
i/10/10%10 153/10/10%10=1 这里即表示取出百位的数
三,完整代码
#include<stdio.h>
#include<math.h>//这里导入数学函数库 比如pow( ,)表示多少次方
int main(){
int ge,shi,bai;//这里这样定义更加清晰明了
int sum;
for (int i = 100; i <1000; i++)
{
bai=i/10/10%10;
shi=i/10%10;
ge=i%10;
sum=pow(ge,3)+pow(shi,3)+pow(bai,3);
//不导入函数库pow(ge,3)就要用ge*ge*ge也可实现
if (sum==i)
printf("%d ",i);
}
}
四、运行结果: