C语言实现水仙花数的求解方法

C语言求水仙花数,也叫做阿姆斯壮数,是指一个n位数,其各位数字的n次方和等于它本身。以下是C语言代码实现:

#include 
#include <math.h>

int main() {
    int num, sum, temp, remainder, n;
    printf("请输入一个数字范围:");
    int start, end;
    scanf("%d %d", &start, &end);

    for (num = start; num <= end; num++) {
        temp = num;
        sum = 0;
        n = (int)log10(num) + 1; // 计算数字的位数
        while (temp != 0) {
            remainder = temp ;
            sum += pow(remainder, n); // 求数字各位数的n次方
            temp /= 10;
        }
        if (sum == num) {
            printf("%d 是水仙花数
", num);
        }
    }
    return 0;
}
</math.h>

该代码可以求出指定范围内的水仙花数。核心思想是通过对每个数字求其各位数字的n次方和,判断是否等于原数字。

zip 文件大小:1.59KB