水仙花数,意思是x位数的每位数的x次方之和为本身,即我们需要判断该位数为多少,再拆分去将每位数的多少次方相加起来。以下暂未写出判断位数的程序,只输入一个三位数,让程序判断该数是否为水仙花数。
//水仙花数(基础版)
#include <stdio.h>
#include <math.h>
int main() {
int g, m, n, sum;
printf("enter n");
scanf("%d", &n);
m = n;
while (n != 0) {
g = n % 10;
n = n / 10;
sum += pow(g, 3);
}
if (sum == m)
printf("yes");
else
printf("no");
return 0;
}
该程序的重点在于以下这段程序
while (n != 0) {
g = n % 10;
n = n / 10;
sum += pow(g, 3);
}
利用余10和除10的特点将每个数都能被利用到,当整数型的n为0时,意味着已经到达最高位的再前一位0,例如0153。本文章通过水仙花数从而让大家对while循环的利用更加熟悉