در این قسمت از فیلم آموزش ++C تابع بازگشتی فیبوناچی آموزش داده شده است . در این جلسه اول نحوه نوشتن تابع را مرور می کنیم و سپس تابع بازگشتی فیبوناچی آموزش داده شده است .
قبل از شروع آموزش باید بگم از این جلسه به بعد دیگه از محیط برنامه نویسی DosBox برای کامپایل کدهای ++C استفاده نمی کنیم و از محیط CodeBlocks استفاده می کنیم این محیط برنامه نویسی را می توانید از سایت CodeBlocks دانلود کنید .
تابع بازگشتی فیبوناچی :
همان طور که می دانید سری فیبوناچی به این صورت است که جمله اول صفر هستش و جمله دوم یک هستش و بعد از صفر و یک ، هر جمله بعدی مجموع دو جمله قبلی هست یعنی اگر صفر + یک شود جمله سوم برابر 1 خواهد بود و این سری به همین منوال ادامه پیدا می کند مانند سری زیر :
0 1 1 2 3 5 8 13 …
سورس کد تابع بازگشتی فیبوناچی در سی پلاس پلاس :
#include <iostream> #include <conio.h> using namespace std; unsigned long fibo(unsigned long number); int main() { int n = 10; for( int counter = 0 ; counter <= n ; counter ++){ cout<<"Fibonacci ("<<counter<<") = "<<fibo(counter)<<endl; } getch(); return 0; } unsigned long fibo(unsigned long number){ if( (number == 0) || (number == 1)){ return number; }else{ return fibo(number - 1) + fibo(number - 2); } }
در سورس کد بالا از نوع unsigned long استفاده کردم چون می خوام اعداد مثبت وارد کنم پس از unsigend استفاده می کنم و long هم همان عدد صحیح است ولی مقدار اعدادی که می تواند در خودش ذخیره کند بیش تر از int است ، شما می تونید از int هم استفاده کنید .
همان طور که در تابع بازگشتی فیبوناچی می بینید میگیم اگه عددی که بع تابع فرستاده شد برابر 0 یا 1 بود همان مقدار را برگردان در عیر این صورت تابع فیبوناچی به صورت بازگشتی اجرا خواهد شد یعنی همان چیزی که اول گفتیم یعنی هر جمله بعدی مجموع دو جمله قبلی است .
پس اول از مقدار وارد شده یدونه کم می کنیم (fibo(number – 1 که همان جمله قبلی است و علامت + قرار می دهیم به معنی مجموع و بعد دوتا از مقدار وارد شده کم می کنیم (fibo(number – 2 یعنی همون دومین جمله قبلی هست .
و این ها به صورت بازگشتی اجرا می شوند تا به مقدار 0 یا 1 برسند در این هنگام مقدار آن ها با هم جمع میشود و در نهایت جواب آخر را نمایش می دهد .
از حلقه for هم برای این استفاده کردیم که Fibonacci یک تا ده را برای ما نمایش دهد .
فیلم آموزش تابع بازگشتی فیبوناچی را می توانید از لینک زیر دانلود کنید .
این آموزش ها ائامه دارند و می توانید قسمت های جدید را از سایت وب سیتی دانلود بکنید .
سلام
خیلی خیلی ممنونم از آموزش خوبتونم
واقعا به راه حل این مسئله نیاز داشتم..
پیروز و موفق باشین
تابع بازگشتی بنویسید که عدد دهدهی بگیرد و به باینری تبدیل کنید
میشه کمک کنید