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

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

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

理解阿姆斯特朗编号

阿姆斯特朗编号(Armstrong number),也称为自恋数、自幂数或自我吹嘘数,是指一个N位数,其各位数字的N次方和等于该数本身。例如,153是一个三位数的阿姆斯特朗数,因为 $1^3 + 5^3 + 3^3 = 153$。

程序实现思路
  • 输入一个正整数N,然后循环检查每个数是否为阿姆斯特朗数;
  • 对于每个数字,我们需要用数学公式计算其N次方和,与该数字进行比较以确认该数字是否为阿姆斯特朗数;
  • 如果数字是阿姆斯特朗数,将其打印输出。
C语言代码示例
#include <stdio.h>
#include <math.h>

int main() {
    int n, num, digit, sum, i;
    printf("请输入一个正整数N:");
    scanf("%d", &n);
    printf("所有的%d位阿姆斯特朗数为:\n", n);
    for (i = pow(10, n-1); i < pow(10, n); i++) {
        // 计算数码N次方和
        sum = 0;
        num = i;
        while (num > 0) {
            digit = num % 10;
            sum += pow(digit, n);
            num /= 10;
        }
        // 判断是否为阿姆斯特朗数
        if (i == sum) {
            printf("%d\n", i);
        }
    }
    return 0;
}
C++代码示例
#include <iostream>
#include <cmath>

using namespace std;

int main() {
    int n, num, digit, sum, i;
    cout << "请输入一个正整数N:";
    cin >> n;
    cout << "所有的" << n << "位阿姆斯特朗数为:" << endl;
    for (i = pow(10, n-1); i < pow(10, n); i++) {
        // 计算数码N次方和
        sum = 0;
        num = i;
        while (num > 0) {
            digit = num % 10;
            sum += pow(digit, n);
            num /= 10;
        }
        // 判断是否为阿姆斯特朗数
        if (i == sum) {
            cout << i << endl;
        }
    }
    return 0;
}

以上代码示例演示了如何输入正整数N,然后依次计算每个N位数的各数位N次方之和,检查其是否等于该数本身,并打印输出所有的阿姆斯特朗数。