はじめに
この実験では、C++ の関数を使って 2 つの数の最大公約数(Greatest Common Divisor: GCD)を求める方法を学びます。GCD は、与えられた 2 つの数を割り切る最大の数です。再帰的なアプローチを使って関数を実装します。
新しい C++ ファイルを作成する
~/project ディレクトリに main.cpp という名前の新しい C++ ファイルを作成します。
touch ~/project/main.cpp
ライブラリをインクルードする
ファイルに必要なライブラリをインクルードします。
#include<iostream>
最大公約数を計算する関数を定義する
2 つの整数型の引数を入力として受け取り、整数型を出力として返す再帰関数 gcd() を定義します。この出力は、2 つの入力数の GCD になります。
int gcd(int a, int b) {
if (a == 0 || b == 0)
return 0;
else if (a == b)
return a;
else if (a > b)
return gcd(a - b, b);
else
return gcd(a, b - a);
}
メイン関数を書く
main() 関数で、2 つの整数型の変数を宣言して値を代入します。その後、これら 2 つの変数をパラメータとして gcd() 関数を呼び出し、結果を出力します。
int main() {
int a = 105, b = 30;
std::cout << "GCD of " << a << " and " << b << " is " << gcd(a,b) << std::endl;
return 0;
}
プログラムをコンパイルして実行する
ファイルに加えた変更を保存して終了します。以下の端末コマンドを使ってプログラムをコンパイルします。
g++ main.cpp -o main
プログラムを実行するには、端末に以下のコマンドを入力します。
./main
出力
プログラムを実行した後、端末には以下のように出力されます。
GCD of 105 and 30 is 15
まとめ
この実験では、C++ の再帰関数を使って 2 つの数の最大公約数(GCD)を求める方法を学びました。これは、コンピュータサイエンスと数学において便利な応用です。



