在 C++ 中检查某个数字是否为 Krishnamurthy 数

c++server side programmingprogramming更新于 2024/9/22 23:33:00

在这里我们将了解如何检查某个数字是否为 Krishnamurty 数。如果每个数字的阶乘之和与该数字相同,则该数字为 Krishnamurty 数。例如,如果某个数字为 145,则和 = 1! + 4! + 5! = 1 + 24 + 120 = 145。因此这是一个 Krishnamurty 数,

逻辑很简单,我们必须找出每个数字的阶乘,然后找出和,如果和与给定数字相同,则该数字为 Krishnamurty 数。让我们查看代码以获得更好的理解。

示例

#include <iostream>
#include <cmath>>
using namespace std;
long factorial(int n){
   if(n <= 1){
      return 1;
   }
   return n * factorial(n - 1);
}
bool isKrishnamurty(int number) {
   int temp = number;
   int sum = 0;
   while(number > 0){
      sum += factorial(number % 10);
      number /= 10;
   }
   if(sum == temp){
      return true;
   }
   return false;
}
int main() {
   int n = 145;
   if(isKrishnamurty(n)){
      cout << n << " is Krishnamurty Number";
   } else {
      cout << n << " is not Krishnamurty Number";
   }
}

输出

145 is Krishnamurty Number

相关文章