محاسبه فاکتوریل با استفاده از تابع بازگشتی ، در این پست سورس برنامه محاسبه فاکتوریل با استفاده از تابع بازگشتی آماده کردیم که جز تمرین های اساتید درس برنامه نویسی سی پلاس پلاس می باشد. سورس کدهای زیادی در زمینه محاسبه فاکتوریل در زبان های مختلف وجود دارد. در اینجا به زبان سی پلاس پلاس است. پیشنهاد می کنیم که علاوه بر اینکه سورس کدی را در اختیار شما قرار دادیم، کدها را یاد بگیرید و اگر آشنا نیستید پیشنهاد می کنیم که آموزش سی پلاس پلاس را از بیاموزید و از آن استفاده کنید.
محاسبه تابع بازگشتی فاکتوریل:
ما می دانیم که 4 فاکتوریل ، 3 فاکتوریل و … به صورت زیر هستند :
4! = 1*2*3*4
3! = 1*2*3
2! = 1*2
1! = 0!*1
0! = 1
برای نوشتن تابع بازگشتی فاکتوریل باید کاری کنیم تا این تابع هی خودش رو فراخوانی بکنه ، اول از مقادیر بالا می فهمیم که فاکتوریل عدد 4 به صورت زیر محاسبه می شود :
4! = 4*3!
حالا این رابطه را به بقیه فاکنوریل ها ها می شود بسط داد که رابطه آن به صورت زیر است :
n! = n * (n-1)!
این رابطه میگه که فاکتوریل عدد را فاکتوریل حالت قبلی ضرب می کنیم تا جواب به دست آید . ( اگه متوجه نشدید فیلم رو ببینید )
سوال این مسئله: برنامه ای بنویسید که عددی را از ورودی بگیرد و با استفاده از تابع بازگشتی فاکتوریل آن را محاسبه کرده و در خروجی چاپ کند.
جواب کد:
#include<iostream> #include<conio.h> using namespace std; long int fact(int); main() { int n; cout<<"please enter a number:"; cin>>n; cout<<"\n\n"<<n<<"!="<<fact(n); cout<<"\n\n\n"<<"press any key to exit..."; getch(); return 0; } //********** long int fact(int m) { int i; if(m==0||m==1) return 1; else return m*fact(m-1); }
ما می دانیم که فاکتوریل عدد 0 ( صفر ) برابر یک است پس اگر عددی کاربر وارد کرده مخالف صفر بود بیا اون عدد رو در حالت قبلی ( یکی کمتر ) ضرب کن و تابع را فراخوانی کن و تابعی که فراخوانی می شود دوباره این مراحل را انجام می دهد مگر اینکه صفر شود ، وقتی صفر شد یک رو بر می گردونه که جواب !0 است و آن را در 1 ضرب می کند تا جواب فاکتوریل 1 به دست بیاید و بعد جواب به دست آمده را در عدد 2 ضرب می کند تا جواب فاکتوریل 2 به دست بیاید و این پروسه ادامه پیدا می کند تا به جواب نهایی برسیم
دیدگاه و پرسش