📜  C实现Armstrong数(1)

📅  最后修改于: 2023-12-03 15:00:12.260000             🧑  作者: Mango

C实现Armstrong数

Armstrong数,也称为自恋数或水仙花数,是指一个n位数(n≥3),它的每个位上的数字的n次方之和等于它本身。例如,1^3 + 5^3 + 3^3 = 153。

在C语言中,我们可以编写程序来判断一个数是否是Armstrong数。以下是实现Armstrong数的C代码示例:

#include <stdio.h>
#include <math.h>

int main() {
    int num, originalNum, sum = 0, n = 0, remainder;
    printf("Enter an integer: ");
    scanf("%d", &num);
    originalNum = num;

    // 求出该数的位数
    while (originalNum != 0) {
        originalNum /= 10;
        ++n;
    }

    originalNum = num;

    // 计算每个位上的数字的n次方之和
    while (originalNum != 0) {
        remainder = originalNum % 10;
        sum += pow(remainder, n);
        originalNum /= 10;
    }

    // 判断是否是Armstrong数
    if (sum == num) {
        printf("%d is an Armstrong number.", num);
    } else {
        printf("%d is not an Armstrong number.", num);
    }

    return 0;
}

代码中,我们首先从用户输入获取一个整数,然后通过 while 循环计算该数的位数。接着,我们再次将原始数值赋值给变量 originalNum,通过 while 循环计算每个位上的数字的n次方之和。最后,我们使用 if 语句判断计算出来的和是否等于原始的数值,从而判断该数是否是Armstrong数。

以上就是一个简单的C语言程序,用来判断一个数是否是Armstrong数。我们可以通过在不同的数值上运行此程序来测试其正确性,并学习如何使用C语言进行数学计算和逻辑判断。