📜  c++中的强数字(1)

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

C++中的强数字

在计算机科学中,强数字(Strong Number)也被称为Krishnamurthy 数字。它是一个自然数,其等于其各个数字的阶乘之和。下面是C++中的强数字代码示例。

强数字实现
#include<iostream>

using namespace std;

int fact(int n); //函数声明

//强数字函数
bool isStrong(int n)
{
    int sum = 0;
    int temp = n;

    while (temp != 0)
    {
        sum += fact(temp % 10);
        temp /= 10;
    }

    return (sum == n); //返回结果
}

//计算数的阶乘函数
int fact(int n)
{
    if (n == 0 || n == 1) 
        return 1;
    else
        return n * fact(n - 1);
}

//主函数
int main()
{
    int n;
    cout << "输入一个数字: ";
    cin >> n;

    if (isStrong(n))
    {
        cout << n << "是强数字。" << endl;
    }
    else
    {
        cout << n << "不是强数字。" << endl;
    }
    return 0;
}

在上面的示例中,isStrong() 函数用于检查给定的数字是否是强数字,而 fact() 函数计算一个数字的阶乘。

运行时输出
输入一个数字: 145
145是强数字。
解释

我们可以看到,程序已在运行时成功识别数字 145 为强数字,即:

1! + 4! + 5! = 145

因此,我们可以说C++程序员可以使用该代码示例来检查任何数字是否是强数字。