📌  相关文章
📜  C++程序显示两个间隔之间的阿姆斯壮数(1)

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

C++程序显示两个间隔之间的阿姆斯壮数

阿姆斯壮数是指一个 n 位数,它的每个数字的 n 次幂之和等于它本身。例如,153 是一个阿姆斯壮数,因为 1^3 + 5^3 + 3^3 = 153。

在下面的 C++ 代码中,我们将展示一个程序,可以显示两个给定的间隔之间的阿姆斯壮数。

#include <iostream>
#include <cmath>

// 函数用于检查一个数字是否为阿姆斯壮数
bool isArmstrong(int num) {
    int temp = num;
    int digitCount = 0;
    int sum = 0;

    // 计算数字的位数
    while (temp != 0) {
        temp /= 10;
        digitCount++;
    }

    // 计算每个位数的数字的 n 次幂之和
    temp = num;
    while (temp != 0) {
        int digit = temp % 10;
        sum += pow(digit, digitCount);
        temp /= 10;
    }

    // 检查是否为阿姆斯壮数
    if (sum == num) {
        return true;
    } else {
        return false;
    }
}

// 函数用于显示两个给定间隔之间的阿姆斯壮数
void displayArmstrongNumbers(int start, int end) {
    std::cout << "Armstrong numbers between " << start << " and " << end << ":\n";

    for (int num = start; num <= end; num++) {
        if (isArmstrong(num)) {
            std::cout << num << " ";
        }
    }

    std::cout << std::endl;
}

int main() {
    int start, end;

    std::cout << "Enter the start number: ";
    std::cin >> start;

    std::cout << "Enter the end number: ";
    std::cin >> end;

    displayArmstrongNumbers(start, end);

    return 0;
}

以上代码首先定义了一个名为 isArmstrong 的函数,用于检查一个数字是否为阿姆斯壮数。该函数通过计算数字的位数并求解每个位数数字的 n 次幂之和来判断。

然后定义了一个名为 displayArmstrongNumbers 的函数,用于显示两个给定间隔之间的阿姆斯壮数。该函数会遍历每个数字,并调用 isArmstrong 函数进行判断。

main 函数中,用户可以输入两个数字作为起始和结束点,然后调用 displayArmstrongNumbers 函数进行展示。

注意:上述代码中使用了 <cmath> 头文件中的 pow 函数,该函数用于计算一个数字的 n 次幂。

运行程序后,将会显示在给定的两个间隔之间的阿姆斯壮数。

希望这个程序能帮助你理解如何在 C++ 中显示两个间隔之间的阿姆斯壮数。