برنامهها را میتوانید با کامپایلر آنلاین، اجرا کنید.
سؤال) برنامه ای بنویسید که یک عدد صحیح را دریافت کرده و با استفاده از یک تابع بازگشتی از آن عدد تا یک را چاپ نماید.
#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); }