在 C++ 中打印 n 个整数的 GCD 公式的递归程序

我们得到一个整数作为输入。目标是使用递归打印 n 个数字的 GCD 公式。

我们知道三个数的 GCD 说 a1,b1 和 c1 将是 gcd(a1,gcd(b1,c1))。同样对于三个以上的数,gcd 可以通过公式得到 gcd ( a1,gcd(b1, gcd(c1.....,gcd(y1,z1))。

例子

输入 - Num = 4;

输出 - 公式是:

GCD(int a3, GCD(int a2, GCD(int a1, int b1)))

输入 - Num = 6;

输出 − 公式为: GCD(int a5, GCD(int a4, GCD(int a3, GCD(int a2, GCD(int a1, int b1)))))

下面程序中使用的方法如下

在这种方法中,我们使用递归函数 gcdFormula(int num1),它将数字计数作为输入并返回包含 num1 数字的 gcd 公式的字符串。

对于基本情况-:如果 num1 为 1,则返回字符串 "int b"+to_string(num1)+""。

Else-:再次递归 gcdFormula(num1-1) 并附加上一个字符串。

  • 取输入数字 Num。

  • 函数 gcdFormula(int num1) 将数字计数作为输入并返回包含 num1 数字的 gcd 公式的字符串

  • 如果 num1 为 1,则返回字符串 "int b"+to_string(num1)+""。

  • 否则打印 "GCD(int a"<<num1-1<<", ";

  • 后跟递归步骤作为返回 (gcdFormula(num1 - 1)+")")

  • 最后将返回整个字符串。

  • 打印在 main 中获得的结果。

示例

#include <bits/stdc++.h>
using namespace std;
string gcdFormula(int num1){
   if (num1 == 1){
      return ("int b"+to_string(num1)+"");
   }
   else{
      cout<<"GCD(int a"<<num1-1<<", ";
      return (gcdFormula(num1 - 1)+")");
   }
}
int main(){
   int Num = 6;
   cout<<"公式为:"<<endl;
   cout<<gcdFormula(Num);
   return 0;
}
输出结果

如果我们运行上面的代码,它将生成以下输出

公式为:
GCD(int a6, GCD(int a5, GCD(int a4, GCD(int a3, GCD(int a2, GCD(int a1, int b1))))))