📜  C程序检查阿姆斯壮编号(1)

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

C程序检查阿姆斯壮编号

什么是阿姆斯壮数?

阿姆斯壮数又称狄利克雷数、自恋数或超完全数字不变数,是指一N位数的每个数位上的数字的N次幂之和等于该数本身。例如,1^3 + 5^3 + 3^3 = 153,因此153是一个三位数的阿姆斯壮数。

检查阿姆斯壮数的C程序

以下是检查阿姆斯壮数的C程序:

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

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

    printf("请输入一个整数:");
    scanf("%d", &n);

    originalNum = n;

    // 计算该数的位数
    while (originalNum != 0) {
        digits++;
        originalNum /= 10;
    }

    originalNum = n;

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

    // 判断是否为阿姆斯壮数
    if (result == n) {
        printf("%d 是一个阿姆斯壮数。\n", n);
    }
    else {
        printf("%d 不是一个阿姆斯壮数。\n", n);
    }

    return 0;
}
程序说明
  • 首先,该C程序提示用户输入一个整数。
  • 然后,程序计算该整数的位数,并将其保存在digits变量中。
  • 接着,程序利用取余操作和pow()函数计算出该整数的每个数位上的N次幂之和,并将其保存在result变量中。
  • 最后,程序判断result是否等于原始的输入整数n,如果相等则输出该整数是一个阿姆斯壮数,否则输出该整数不是一个阿姆斯壮数。
总结

阿姆斯壮数是一种特殊的数字,其每个数位上的N次幂之和等于该数字本身。通过使用C语言的循环、取余和幂运算等操作,我们可以检查输入的整数是否为阿姆斯壮数。