C语言学习笔记-水仙花数
水仙花数是指一个 3 位数,它的每个数位上的数字的 3次幂之和等于它本身
废话不多说,直接上代码
#include <stdio.h>
/*水仙花数是指一个 3 位数,它的每个数位上的数字的 3次幂之和等于它本身*/
int main(){
int n = 3;
int first = 1;
// 获取全部3位数范围(100,1000)
for(int i=1;i<n;i++){
first *=10;
}
// 遍历全部的三位数
for(int i=first;i<first*10;i++){
int sum=0;
// 对数进行分解,得到每一位上的数
for(int t=i;t>0;t /=10){
int d = t%10;
int p = 1;
// 每一位上的数的n次方,第一次乘以1
for(int j =0;j<n;j++){
p *=d;
}
sum +=p;
}
// 判断求出的sum与原来的数是否一样
if(sum == i){
printf("%d\n",i);
}
}
return 0;
}