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

GCDを見つけるためのC++プログラム


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

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

45 = 5 * 3 * 3
27 = 3 * 3 * 3

したがって、45と27のGCDは9です。

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 = 105, b = 30;
   cout<<"GCD of "<< a <<" and "<< b <<" is "<< gcd(a, b);
   return 0;
}

出力

GCD of 105 and 30 is 15

上記のプログラムでは、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);
}
を返します

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 = 105, b =30;
   cout<<"GCD of "<< a <<" and "<< b <<" is "<< gcd(a, b);
   return 0;
}

出力

GCD of 105 and 30 is 15

上記のプログラムでは、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);
}
を返します
  1. C++で線の中点を見つけるプログラム

    この問題では、線の始点と終点の2つの点AとBが与えられます。私たちの仕事は、C++で線の中点を見つけるプログラムを作成することです。 問題の説明 −ここでは、開始点と終了点がA(x1、y1)とB(x2、y2)の線があります。そして、線の中点を見つける必要があります。 問題を理解するために例を見てみましょう 入力 a(x1, y1) = (4, -5) b(x2, y2) = (-2, 6) 出力 (1, 0.5) 説明 (x1 + x2)/2 = 4 - 2 / 2 = 1 (y1 + y2)/2 = -5 + 6 / 2 = 0.5 ソリューションアプローチ この問題を解決する

  2. C++で三角形の図心を見つけるプログラム

    この問題では、三角形の3つの頂点の座標を示す2D配列が与えられます。私たちのタスクは、C++で三角形のセントロイドを見つけるプログラムを作成することです。 セントロイド 三角形の3つの中央値は、三角形の3つの中央値が交差する点です。 中央値 三角形の頂点は、三角形の頂点とその反対側の線の中心点を結ぶ線です。 問題を理解するために例を見てみましょう 入力 (-3, 1), (1.5, 0), (-3, -4) 出力 (-3.5, -1) 説明 Centroid (x, y) = ((-3+2.5-3)/3, (1 + 0 - 4)/3) = (-3.5, -1) ソリューションアプロ