我们得到一个整数作为输入。目标是使用递归打印 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))))))