n の階乗を計算する C 言語の方法: 1. for ループを通じて階乗を計算します。「for (i = 1; i
このチュートリアルの動作環境: Windows 7 システム、c99 バージョン、Dell G3 コンピューター。
C 言語で n の階乗を計算するにはどうすればよいですか?
問題の説明
整数 n が与えられた場合、その階乗 0≤n≤ 12# を求めます##Input数値を入力 n
Outputn 階乗を表す数値を出力
#サンプル入力
5
サンプル出力
120
2. 分析突破ポイントは
:factorial 階乗の概念と背景:
1️⃣概念:
正の整数の階乗 (階乗) は、すべての積です。この数値以下の正の整数、0 の階乗は 1 です。自然数nの階乗はn!と書きます。
2️⃣背景:
1808 年、クリスチャン クランプ (1760~1826) がこの表記法を導入しました。
3️⃣ 階乗の計算方法:
1 以上の任意の自然数 n 階乗表現方法: n!= 1×2 ×3×…×(n-1)×n または n!=n×(n-1)!
注: 0 の階乗は 1、つまり 0! =1。
1! = 12! = 2 * 1 = 2
3! = 3 * 2 * 1 = 6 …
n! = n * (n-1) *… * 2 * 1
これを理解したら、コードで実装してみて、次のコードを確認してください。
3.
#include<stdio.h>int main(){ int n; scanf("%d", &n); int fact = 1; int i; for (i = 1; i <= n; i++) { fact *= i; } printf("%d\n", fact); return 0;}
1 * 2 * 3 * 4 * 5 = 120
5120--------------------------------Process exited after 1.475 seconds with return value 0请按任意键继续. . .
②while ループ
#include<stdio.h>int main(){ int n; scanf("%d", &n); int fact = 1; int i = 1; while (i <= n) { fact *= i; i++; } printf("%d\n", fact); return 0;}
1 * 2 * 3 * 4 * 5 * 6 = 720
6720--------------------------------Process exited after 1.549 seconds with return value 0请按任意键继续. . .
#include <stdio.h>int Fact(int n);int main() //主函数{ int n, cnt; scanf("%d", &n); cnt = Fact(n); printf("%d\n", cnt); return 0;} int Fact(int n) //递归函数 { int res = n; if (n > 1) res = res * Fact(n - 1); return res;}
7 * 6 * 5 * 4 * 3 * 2 * 1
= 1 * 2 * 3 * 4 * 5 * 6 * 7
75040--------------------------------Process exited after 2.563 seconds with return value 0请按任意键继续. . .
2️⃣書き方2
#include <stdio.h>int Fact(int n) //递归函数 { int res = n; if (n > 1) res = res * Fact(n - 1); return res;}int main() //主函数 { int n, cnt; scanf("%d", &n); cnt = Fact(n); printf("%d\n", cnt); return 0;}
6 * 5 * 4 * 3 * 2 * 1
= 1 * 2 * 3 * 4 * 5 * 6
6720--------------------------------Process exited after 1.829 seconds with return value 0请按任意键继续. . .
C 言語ビデオ チュートリアル
]
以上がC言語でnの階乗を計算する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。