C++递归程序,用于打印n个整数最大公约数的公式
给定一个整数作为输入。目标是使用递归打印n个数的最大公约数的公式。
我们知道,三个数a1、b1和c1的最大公约数将是gcd(a1,gcd(b1,c1))。类似地,对于三个以上的数,最大公约数可以通过公式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个数的最大公约数公式的字符串。
对于基本情况:如果num1为1,则返回字符串"int b"+to_string(num1)+""。
否则:再次递归调用gcdFormula(num1-1)并追加之前的字符串。
输入数字Num。
函数gcdFormula(int num1) 将数字计数作为输入,并返回包含num1个数的最大公约数公式的字符串
如果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<<"Formula is :"<<endl;
cout<<gcdFormula(Num);
return 0;
}输出
如果运行上述代码,它将生成以下输出
Formula is : GCD(int a6, GCD(int a5, GCD(int a4, GCD(int a3, GCD(int a2, GCD(int a1, int b1))))))
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP