C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

再帰を使用してG.C.Dを検索するC++プログラム


2つの数値の最大公約数(GCD)は、両方を除算する最大の数値です。

例:45と27の2つの数字があるとします

63 = 7 * 3 * 3
42 = 7 * 3 * 2
So, the GCD of 63 and 42 is 21

再帰を使用して2つの数値のGCDを見つけるプログラムは次のとおりです。

#include<iostream>
using namespace std;
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);
}
int main() {
   int a = 63, b = 42;
   cout<<"GCD of "<< a <<" and "<< b <<" is "<< gcd(a, b);
   return 0;
}

出力

GCD of 63 and 42 is 21

上記のプログラムでは、gcd()は再帰関数です。 aとbの2つのパラメータがあります。 aまたはbが0の場合、関数は0を返します。aまたはbが等しい場合、関数はaを返します。 aがbより大きい場合、関数は値a-bおよびbを使用して自分自身を再帰的に呼び出します。 bがaより大きい場合、関数は値aおよびb-aを使用して自分自身を再帰的に呼び出します。

これは、次のコードスニペットによって示されます。

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);
}
を返します

再帰を使用して2つの数値のGCDを見つける別の方法は次のとおりです。

#include <iostream>
using namespace std;
int gcd(int a, int b) {
   if (b == 0)
   return a;
   return gcd(b, a % b);
}
int main() {
   int a = 63, b = 42;
   cout<<"GCD of "<< a <<" and "<< b <<" is "<< gcd(a, b);
   return 0;
}

出力

GCD of 63 and 42 is 21

上記のプログラムでは、gcd()は再帰関数です。 aとbの2つのパラメータがあります。 bが0より大きい場合、aはmain()関数に返されます。それ以外の場合、gcd()関数は値bとa%bを使用して自分自身を再帰的に呼び出します。

これは、次のコードスニペットを使用して示されています。

int gcd(int a, int b) {
   if (b == 0)
   return a;
   return gcd(b, a % b);
}
を返します
  1. 再帰関数を使用して数値のGCDを見つけるCプログラム

    問題 Cプログラミング言語の再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけます。 解決策 再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけるための解決策は、次のとおりです- アルゴリズム 再帰関数を使用して、指定された2つの数値の最大公約数(GCD)を見つけるには、以下のアルゴリズムを参照してください。 ステップ1 −再帰関数を定義します。 ステップ2 −2つの整数aとbを読み取ります。 ステップ3 −再帰関数を呼び出します。 a. if i>j b. then return the function with parameter

  2. C++を使用して楕円の領域を見つけるプログラム

    ここでは、C++を使用して楕円の面積を取得する方法を説明します。楕円にはさまざまな部分があります。これらは以下のようなものです。 キーポイント 説明 センター 楕円の中心。また、2つの焦点を結ぶ線分の中心でもあります。 主軸 楕円の最長直径 nmemb これは要素の数であり、各要素のサイズはサイズです。 バイト。 短軸 楕円の最小直径 コード tを指す線分 フォーカス 図で示されている2つのポイント ロータス直腸 蓮の直腸は、焦点を通り、楕円の主軸に垂直な線です。 楕円の面積はΠ𝜋 ∗𝑎a∗b𝑏 サンプルコード #include <iostre