درخواست کمک برای نوشتن برنامه فیبوناچی برای اعداد بزرگ + کد
سلام به همگی
این کد برنامه فیبوناچی رو ببینید...
کد:
#include<iostream.h>
int fib(int);
void main()
{
int n;
cout<<"enter a numbers ";
cin>> n;
if(n<0)
cout<<"error";
else
cout<<fib(n)<<endl;
}
int fib(int x)
{
if(x<=1)
return x;
else
return fib(x-1) + fib(x-2);
}
این برنامه به ازای n های بالاتر از 45 خیلی طول میکشه...مثلا رو سیستم من با سی پی یو چهار هسته ای و دو گیگ رم برای عدد 41 حدود ده ثانیه طول میکشه و برای از 50 به بالاتر هم میزنه طرفهای چند ساعت...
تو رشته کامپیوتر و درس طراحی الگوریتم در مورد الگوریتم فیبوناچی صحبت شده و از نوعی از برنامه نویسی به کمک آرایه صحبت شده که دیگه نیازی نیست مثل الگوریتم بالا فیبوناچی عددی مثل 3 چندین بار در زمان اجرای برنامه محاسبه بشه و وقت اجرای برنامه افزایش پیدا کنه بلکه این مقدار یکبار محاسبه شده و در آرایه ذخیره میشه و برنامه از آرایه برای محاسبه فیبوناچی اعداد استفاده میکنه که نسبت به کدی که من نوشتم خیلی خیلی سریعتر هست..
من اون کد رو میخواستم اگه محبت کنید..
ممنونم:11: