برنامه سری فیبوناچی؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

برنامه سری فیبوناچی؟

+1 امتیاز

چطور این برنامه نوشته میشه؟

سری فیبوناچی:

1و1و2و3و5و8و....

همان طور که معلومه دنباله به این صورت است که اول دو تا 1 داریم و بعد هر عدد از جمع دو عدد قبلی به دست میاد

ولی نمیدونم چطور این برنامه رو باید بنویسم

sad

سوال شده فروردین 25, 1393  بوسیله ی zohamoini (امتیاز 47)   9 11 13

2 پاسخ

+2 امتیاز
#include<iostream>

int fib(int n)
{
   if(n<=1)
       return n;
   else
      return ( fib(n-1) + fib(n-2) );
}

int main()
{
   int n;
   std::cin>>n;
   for (int i = 1 ; i <=n ; i++ )
   {
      std::cout<<fib(i)<<'\n';
   }
}

 

پاسخ داده شده فروردین 25, 1393 بوسیله ی PSPCoder (امتیاز 1,301)   14 40 57
به صورت غیر بازگشتی چطوره؟
اونم باید به صورت یک آرایه بنویسید البته نظ منه....
هر مرحله که عددی رو بدست میارید اونو تو خونه خودش توی آرایه قرار بدید دفعه بعد که به اون عدد نیاز دارید از همون خونه بخونید.. این روش از نظر پیجیدگی اجرایی هم بهینه تر از روش بازگشتی میباشه البته اگه درست یادم بیاد من این مطلبو دوسال پیش توی درس طراحی الگوریتم خونده بودم .الان کامپایلر سی ندارم اگه جور ش کردم براتون مینویسم....
می تونید از فرمول حالت بسته ی فیبوناچی هم استفاده کنید!
http://goo.gl/kZ1LxP
+4 امتیاز
#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    int n;
    cin>>n;
    
    int f,f1=1,f2=0;
    
    for(int i=1;i<=n;i++){
        f=f1+f2;
        f1=f2;
        f2=f;
        
        cout<<f<<" ";
        
    }
    getch();
}
پاسخ داده شده فروردین 25, 1393 بوسیله ی Amin (امتیاز 453)   10 17 43
ویرایش شده فروردین 25, 1393 بوسیله ی Amin
ببخشید منظورتون از number که در حلقه for گذاشتین چیه؟ یعنی یک عدد به دلخواه بدیم ؟ خوب چرا برنامرو طوری ننوشتید که از کاربر بگیره؟
خب چرا از i توی حلقه ی for به جای number استفاده نکردی؟؟؟
ممنون

راست می گیا !!!!
...