はじめに
この実験では、数の階乗を求めるための C プログラムを書く方法を学びます。ループを使って階乗を計算するための簡単なアルゴリズムを使用します。
注:コーディングを練習し、gcc を使ってコンパイルと実行方法を学ぶには、自分で
~/project/main.cファイルを作成する必要があります。
cd ~/project
## main.c を作成する
touch main.c
## main.c をコンパイルする
gcc main.c -o main
## main を実行する
./main
階乗の理解
ある数(たとえば n)の階乗(n! で表されます)は、n より前のすべての数とその数自体の積です。つまり、
!n = n *!(n - 1)
たとえば、
!6 = 6 * 5 * 4 * 3 * 2 * 1 = 720
!12 = 12 * 11 * 10 * 9 * 8 * 7 *!6 = 479,001,600
重要なポイント:
- 0 の階乗は 1 です
- 負の数の階乗は存在しません。
アルゴリズムの記述
階乗プログラムで実行する手順は以下の通りです。
- 変数
nとfact=1を宣言します。nは階乗を計算する対象の数であり、factは結果を格納する変数です。 - ユーザーから
nに入力を読み取ります。 - ループイテレータ
i=1を初期化し、i<=nまでループを実行します。 - ループの各反復で以下のことを行います。
fact=fact*ii++
factを出力します。
C プログラムの作成
このプログラムでは、for ループを使って数の階乗を求めます。
#include<stdio.h>
int main()
{
int n,i;
long int fact=1;
printf("Enter the number: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
fact=fact*i; // 階乗を計算
}
printf("Factorial of %d is %ld",n,fact);
return 0;
}
プログラムのテスト
プログラムを実行して出力を確認することで、テストしましょう。
Enter the number: 5
Factorial of 5 is 120
最終プログラム
ここに、for ループを使って数の階乗を求める最終プログラムがあります。
#include<stdio.h>
int main()
{
int n,i;
long int fact=1;
printf("Enter the number: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
fact=fact*i; // 階乗を計算
}
printf("Factorial of %d is %ld",n,fact);
return 0;
}
まとめ
この実験では、for ループを使って数の階乗を求める C プログラムを書く方法を学びました。単純なアルゴリズムを使い、手順を追って目的を達成しました。このプログラムはユーザーから入力を受け取り、ループを使って階乗を計算し、結果を画面に表示します。変数の初期化や int 型と long int 型のデータ型の制限など、重要なポイントも学びました。



