برنامه‌ها را می‌توانید با کامپایلر آنلاین، اجرا کنید.

سؤال) برنامه ای بنویسید که یک عدد صحیح را دریافت کرده و با استفاده از یک تابع بازگشتی از آن عدد تا یک را چاپ نماید.

#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);
}

لینک‌های مرتبط