PDA

View Full Version : سوال: مشکل کد سری فیبوناچی به روش تکراری



esy2012
جمعه 29 دی 1391, 01:36 صبح
سلام دوستان

من یه مشکلی توی این کد دارم
توی درس طراحی الگوریتم
وقتی توی این کد مثلا عدد 5 رو محاسبه میکنم جواب به این شکل میاد
7 5 3 1 1 0

ولی باید اینجوری بیاد

5 3 1 1 0

خواهشا راهنمایی کنید امتحان دارم


int fib2 (int n)
{
index i;
int f [0..n];
f[0] = 0;
if (n > 0) {
f[1] = 1;
for (i = 2 ; I <= n; i++)
f[i] = f [i -1] + f [i -2];
}
return f[n];
}

sr2m72
جمعه 29 دی 1391, 11:27 صبح
سلام
توي حلقه for مساوي رو برداريد بينم جواب ميده يا نه:

int fib2 (int n)
{
index i;
int f [0..n];
f[0] = 0;
if (n > 0) {
f[1] = 1;
for (i = 2 ; i < n; i++)
f[i] = f [i -1] + f [i -2];
}
return f[n];
}



اگه جواب نداد از اين تابع استفاده كنيد:

int fib (int n)
{
int f1=0,f2=1,f3;
cout<<f1<<f2;
for(int i=2;i<n;i++)
{
f3=f1+f2;
f1=f2;
f2=f3;
cout<<f3;
}
return 0;
}


موفق باشيد!

esy2012
جمعه 29 دی 1391, 19:13 عصر
سلام

فقط من اینارو چون امتحان طراحی الگوریتم دارم وقت نمیکنم بطور عملی کار کنم رو کاغذ پیاده سازی میکنم و ذهنی کامپایل میکنم
اون مساوی رو خودمم برداشتم دیدم جواب میده ولی استاد و کتاب جعفر نژاد قمی و کلا تمام منابع موجود در اینترنت اینو به همون شکل
>= نوشتن
برا همین شک کردم


پس به نظر شما هم درست در نمیاد؟
ممنونم

sr2m72
جمعه 29 دی 1391, 19:56 عصر
سلام

فقط من اینارو چون امتحان طراحی الگوریتم دارم وقت نمیکنم بطور عملی کار کنم رو کاغذ پیاده سازی میکنم و ذهنی کامپایل میکنم
اون مساوی رو خودمم برداشتم دیدم جواب میده ولی استاد و کتاب جعفر نژاد قمی و کلا تمام منابع موجود در اینترنت اینو به همون شکل
>= نوشتن
برا همین شک کردم


پس به نظر شما هم درست در نمیاد؟
ممنونم

سلام
اونهايي كه از >= استفاده ميكنن براي شروع حلقه هم از (i=3) استفاده ميكنن.
شما جوابي رو كه درسته بنويس و كاري به جعفر نژاد نداشته باش!