数値「n」が与えられた場合、その数値が強い数値であるかどうかを確認する必要があります。
強い数値とは、そのすべての数値の階乗の合計が数値「n」に等しいことを意味します。階乗は、その数値を含む、その数値より小さいすべての数値を乗算した結果であり、! (感嘆符) で表されます。例: 4! = 4x3x2x1 = 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; }
上記のコードを実行すると、次の出力が生成されます -
rreeee以上が強い数値をチェックする C プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。