水仙花數(shù)是指一個(gè)n位數(shù),其各位數(shù)字的n次冪之和等于該數(shù)本身。比如三位數(shù)153就是一個(gè)水仙花數(shù),因?yàn)?^3 + 5^3 + 3^3 = 153。
以下是一個(gè)用C語言實(shí)現(xiàn)水仙花數(shù)的程序:
#include <stdio.h>
#include <math.h>
int main() {
int num, originalNum, remainder, result = 0, n = 0;
printf("請(qǐng)輸入一個(gè)整數(shù):");
scanf("%d", &num);
originalNum = num;
// 計(jì)算這個(gè)數(shù)是幾位數(shù)
while (originalNum != 0) {
originalNum /= 10;
++n;
}
originalNum = num;
// 計(jì)算各位數(shù)字的n次冪之和
while (originalNum != 0) {
remainder = originalNum % 10;
result += pow(remainder, n);
originalNum /= 10;
}
// 判斷是否為水仙花數(shù)
if (result == num) {
printf("%d 是水仙花數(shù)。\n", num);
} else {
printf("%d 不是水仙花數(shù)。\n", num);
}
return 0;
}
運(yùn)行程序后,輸入一個(gè)整數(shù),程序會(huì)判斷該整數(shù)是否為水仙花數(shù)。