在 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(inta3,GCD(inta2,GCD(inta1,intb1)))
输入 -Num=6;
输出 −公式为:GCD(inta5,GCD(inta4,GCD(inta3,GCD(inta2,GCD(inta1,intb1)))))
下面程序中使用的方法如下
在这种方法中,我们使用递归函数gcdFormula(intnum1),它将数字计数作为输入并返回包含num1数字的gcd公式的字符串。
对于基本情况-:如果num1为1,则返回字符串"intb"+to_string(num1)+""。
Else-:再次递归gcdFormula(num1-1)并附加上一个字符串。
取输入数字Num。
函数gcdFormula(intnum1)将数字计数作为输入并返回包含num1数字的gcd公式的字符串
如果num1为1,则返回字符串"intb"+to_string(num1)+""。
否则打印"GCD(inta"<<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))))))