首頁 >後端開發 >C++ >C程序檢查強數

C程序檢查強數

WBOY
WBOY轉載
2023-09-07 09:09:121000瀏覽

C程序檢查強數

給定一個數字'n',我們需要檢查給定的數字是否為強數。

強數是指其所有數字的階乘總和等於數字'n'。階乘是指將小於該數字的所有數字(包括該數字)相乘的結果,以!(感嘆號)表示。例如:4! = 4x​​3x2x1 = 24。

因此,要確定一個數字是否是強數,我們需要提取數字的每一位,例如數字為145,則我們需要提取1、4和5,然後我們將計算每個數字的階乘,即1! = 1,4! = 24,5! = 120。

現在我們將1 24 120相加,得到145,與給定的輸入完全相同,因此我們可以說這個數字是強數。

範例

Input: n = 124
Output: No it is not a strong number
Explanation: 1! + 2! + 4! = 27 which is not equal to n i.e, 124
Input: n = 145
Output: Yes it is a strong number
Explanation: 1! + 4! + 5! = 145

下面使用的方法如下來解決問題

我們將−

  • 從個位數開始取每個數字,並找到其階乘。
  • 我們將這些數字的階乘相加。
  • 將結果與原始數字進行比較,如果它們相等,則該數字是強數;否則該數字不是強數。

演算法

START
In Function int factorial(int r)
   Step1 -> Initialize int fact and set as 1
   Step2-> Loop while r>1
      Set fact as fact * r
      Decremnet r by 1
   End Loop
   Step 3-> Return fact
   End Function factorial
In Function int check(int n)
   Step 1-> Initialize int temp, rem and result, set result as 0
   Step 2-> Set temp as n
   Step 3-> Loop while temp
      Set rem as temp % 10
      Set result as result + factorial(rem)
      Set temp as temp/10
   End loop
   Step 4-> If result == n then,
      Return 1
   Step 5-> Else
   Return 0
   End function check
In main(int argc, char const *argv[])
   Step 1-> Initialise and set n as 145
   Step 2->If check(n) is valid then,
      Print "Yes it is a strong number”
   Step 3-> Else
      Print "no it is not a strong number”
STOP

範例

 即時示範

#include <stdio.h>
int factorial(int r) {
   int fact = 1;
   while(r>1) {
      fact = fact * r;
      r--;
   }
   return fact;
}
int check(int n) {
   int temp, rem, result = 0;
   temp = n;
   while(temp) {
      rem = temp % 10;
      result = result + factorial(rem);
      temp = temp/10;
   }
   if (result == n)
      return 1;
   else
      return 0;
}
int main(int argc, char const *argv[]) {
   int n = 145;
   if (check(n))
      printf("Yes it is a strong number</p><p>");
   else
      printf("no it is not a strong number</p><p>");
   return 0;
}

如果執行上述程式碼,將產生以下輸出 −

Yes it is a strong number
#

以上是C程序檢查強數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除