برنامهها را میتوانید با کامپایلر آنلاین، اجرا کنید.
سؤال) برنامه ای بنویسید که یک عدد صحیح را دریافت کرده و با استفاده از یک تابع بازگشتی از آن عدد تا یک را چاپ نماید.
#include <iostream>
using namespace std;
void print_recursive(int n);
int main()
{
int n;
cin >> n;
print_recursive(n);
return 0;
}
void print_recursive(int n)
{
if (n>0)
{
cout << n << endl;
print_recursive(n-1);
}
else
return;
}
سؤال) برنامه ای بنویسید که دو عدد صحیح را از کاربر بگیرد و با استفاده از یک تابع بازگشتی حاصلضرب دوعدد را محاسبه و چاپ نماید.
#include <iostream>
using namespace std;
int recursive_product(int a, int b);
int main()
{
int m , n;
cin >> m >> n;
cout << recursive_product(m,n);
return 0;
}
int recursive_product(int a, int b)
{
if (a>0)
return b+recursive_product(a-1, b);
else if (a<0)
{
a = -a;
return -(b+recursive_product(a-1, b));
}
else // a==0
return 0;
}
سؤال) برنامهای بنویسید که دو عدد طبیعی (صحیح مثبت) را از کاربر بگیرد و با استفاده از یک تابع بازگشتی ب.م.م (بزرگترین مقسوم علیه مشترک) دوعدد را محاسبه و چاپ نماید.
// Calculates Greatest Common Divisor (GCD) of two positive integer numbers
// it also named Highest Common Factors (HCF)
#include <iostream>
using namespace std;
unsigned int gcd(unsigned int a, unsigned int b);
int main() {
unsigned int a , b;
cout << "Enter two positive integers: ";
cin >> a >> b;
if (a==0 || b==0) // we can also use if (a*b==0)
{
cerr << "Error in parameters, both of them must be >0";
return 1; //exits with error code #1
}
cout << " GCD("<< a <<" , "<< b <<") = "<< gcd(a, b);
return 0;
}
unsigned int gcd(unsigned int a, unsigned int b)
{
// Pre Condition: a>0 and b>0
if (b == 0)
return a;
else
return gcd(b, a % b);
}