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