首页 文章资讯内容详情

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

2026-06-02 7 花语

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