# 题目
用 C 语言打印水仙花数,水仙花数 (Narcissistic number)
也被称为超完全数字不变数 (pluperfect digital invariant, PPDI)
、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数 (Armstrong number)
,水仙花数是指一个 3 位数,它的每个位上的数字的 3 次幂之和等于它本身 (例如:1^3 + 5^3+ 3^3 = 153)
# 分析
这个题目很简单,仅需要把一个三位数的整数拆分开来,将其个位、十位、百位分别乘以自身的 3 次幂然后相加,最后判断其结果是否等于自身
# 代码实现
#include <stdio.h> | |
#include <math.h> | |
int main(int argc,char *argv[]){ | |
int i,x=0,y=0,z=0; | |
for(i=100;i<1000;i++){ | |
# 取个位数值 | |
x=i%10; | |
# 取十位数值 | |
y=i/10%10; | |
# 取百位数值 | |
z=i/100; | |
if( pow(x,3) + pow(y,3) + pow(z,3) == i ){ | |
printf ("%d\n",i); | |
} | |
} | |
} |