📜  阿姆斯特朗编号的C C ++程序(1)

📅  最后修改于: 2023-12-03 14:58:39.335000             🧑  作者: Mango

阿姆斯特朗编号的C/C++程序

什么是阿姆斯特朗编号?

阿姆斯特朗编号是指一个 $n$ 位数,它每个位上数字的 $n$ 次幂之和等于它本身。例如,$153$ 可以被称为阿姆斯特朗编号,因为 $1^3 + 5^3 + 3^3 = 153$。

解决方案

我们可以编写一个C/C++程序来检查一个给定的数字是否是阿姆斯特朗编号。

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

int main() {
    int num, originalNum, remainder, n = 0;
    float result = 0.0;

    // 输入一个整数
    printf("Enter an integer: ");
    scanf("%d", &num);

    // 检查数字的位数
    originalNum = num;

    while (originalNum != 0) {
        originalNum /= 10;
        ++n;
    }

    originalNum = num;

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

    // 检查数字是否为阿姆斯特朗编号
    if ((int)result == num)
        printf("%d is an Armstrong number.", num);
    else
        printf("%d is not an Armstrong number.", num);

    return 0;
}
程序说明

此程序接受一个整数作为输入,并计算该数字是否为阿姆斯特朗编号。

程序首先检查数字的位数,然后将数字的每个数字的n次幂之和计算出来。最后,程序将计算出的总和与原始数字进行比较,以确定是否为阿姆斯特朗编号。

在上面的程序中,我们使用了几个C/C++的标准库函数。

  • printf() 函数用于打印输出结果。
  • scanf() 函数用于读取输入数字。
  • pow() 函数用于计算一个数字的 n 次幂。
总结

这个C/C++程序演示了如何检查一个数字是否为阿姆斯特朗编号。阅读并理解此程序的结构和关键代码行将有助于您理解基本的C/C++编程技术。