📜  C++示例 阿姆斯特朗数(1)

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

C++示例-阿姆斯特朗数

什么是阿姆斯特朗数?

阿姆斯特朗数(Armstrong number),又叫做自恋数(narcissistic number)、水仙花数或自幂数,它是指一个n位十进制数,它的每个位上的数字的n次幂之和等于它本身。

怎么判断一个数是阿姆斯特朗数?

以3位数为例,如果一个3位数ABC满足以下条件,那么它就是阿姆斯特朗数:

ABC = A^3 + B^3 + C^3

同理,如果是4位数,就是:

ABCD = A^4 + B^4 + C^4 + D^4

以此类推。

C++示例

下面是一个使用C++编写的判断是否为阿姆斯特朗数的代码示例:

#include <iostream>
#include <cmath>
using namespace std;

// 计算一个数的位数
int countDigits(int num)
{
    int count = 0;
    while (num != 0)
    {
        count++;
        num /= 10;
    }
    return count;
}

// 判断一个数是否为阿姆斯特朗数
bool isArmstrongNumber(int num)
{
    int sum = 0;
    int temp = num;
    int digits = countDigits(num);
    while (temp != 0)
    {
        int digit = temp % 10;
        sum += pow(digit, digits);
        temp /= 10;
    }
    if (sum == num)
    {
        return true;
    }
    else
    {
        return false;
    }
}

int main()
{
    int num;
    cout << "请输入一个数:";
    cin >> num;
    if (isArmstrongNumber(num))
    {
        cout << num << "是阿姆斯特朗数!" << endl;
    }
    else
    {
        cout << num << "不是阿姆斯特朗数。" << endl;
    }
    return 0;
}

代码分为三个部分:

  1. countDigits函数:用来计算一个数的位数。
  2. isArmstrongNumber函数:用来判断一个数是否为阿姆斯特朗数。
  3. main函数:用来调用上面两个函数,并输出结果。

使用方法:输入一个数,程序会判断它是否为阿姆斯特朗数,并输出结果。

总结

阿姆斯特朗数是一个有趣的数学问题,我们可以编写程序来寻找这样的数。本文中给出了一个C++示例,以供参考。