Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 4 của 4

Chủ đề: Day Fibonacci

  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Day Fibonacci

    minh moi vao nganh mong cac bac chi giao dum:
    Nhu the nay: cho mot day cac so nguyen a1, .........., an(n<=100). Hay tim trong day a mot day fibonacci dai nhat.

    vi du: mot day gom: 1 1 2 4 5 8 13 21 34
    Vay thi day Fibonacci day nhat la: 5 8 13 21 34 [IMG]images/smilies/icon_question.gif[/IMG]

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Cái này dùng counting sort là chắc ăn.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Thanks nha! để tôi tìm counting sort xem sao.

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Đây là code của mình! Các bạn nào có phương pháp nào hay hơn thi post lên cho mọi người cùng tham khảo nha!
    Đoạn code này chỉ là ý tưởng riêng của mình, ai có ý tưởng tốt hơn thì cùng post lên cho mọi người cùng tham khảo..........

    #include<iostream>
    #include<stdio.h>
    #include<conio.h>
    #include<process.h>
    using namespace std;


    class Fibonacci
    {
    public:
    int max1,max2;
    int vt;
    int n,a[100];
    int b[100],d;
    int b1[100],d1;
    int max;
    public:
    void nhapm();
    friend int ktfb(int t);
    void cat1(int a[],int n, int b[],int *m);
    void cat2(int a[],int n,int b1[],int *m);
    void xuatm();
    int kt1();
    int kt2();
    void kt3();
    void in();
    void chay();
    };
    void Fibonacci::nhapm()
    {
    for(int i=1;i<=n;i++)
    {
    cout<<"
    Nhap phan tu thu "<<i<<": ";
    cin>>a[i];
    }
    }
    int ktfb(int t)
    {
    int x=0,y=1,z=0;
    while(z<t)
    {
    z=x+y;
    x=y;
    y=z;
    }
    if (z==t)
    return 1;
    else
    return 0;
    }
    void Fibonacci::cat1(int a[],int n, int b[],int *m)
    {
    int j=0;
    for(int i=1;i<=n;i++)
    {
    if(ktfb(a[i])==1)
    {
    b[j++]=a[i];
    }
    }
    *m=j;
    }
    void Fibonacci::cat2(int a[],int n,int b1[],int *m)
    {
    int dem=0;
    int j=0;
    for(int i=1;i<=n;i++)
    {
    if(ktfb(a[i])==1)
    dem++;
    else
    {
    b1[j++]=dem;
    dem=0;
    continue;
    }
    }
    b1[j++]=dem;
    *m=j;
    }
    void Fibonacci::xuatm()
    {
    for(int i=1;i<=n;i++)
    {
    cout<<" "<<a[i];
    }
    }
    int Fibonacci::kt1()
    {
    int max11;
    max11=(Fibonacci::b1[0]);
    for(int i=0;i<(Fibonacci::d1);i++)
    if(max11<(Fibonacci::b1[i]))
    max11=(Fibonacci::b1[i]);
    return max11;
    }
    int Fibonacci::kt2()
    {

    if(Fibonacci::max==Fibonacci::b1[0])
    {
    Fibonacci::max1=Fibonacci::b1[0];
    return 1;
    }
    else
    {
    for(int i=0;i<Fibonacci::d1;i++)
    {
    if(Fibonacci::max==Fibonacci::b1[i])
    Fibonacci::max2=Fibonacci::b1[i];
    }
    return 0;
    }
    }
    void Fibonacci::kt3()
    {
    int vt1=0;
    int c=0;
    for(int i=0;i<Fibonacci::d1;i++)
    {
    if(Fibonacci::max==Fibonacci::b1[i])
    {
    vt1=i-1;
    break;
    }
    }
    vt1++;
    for(int i=0;i<vt1;i++)
    {
    c=c+b1[i];
    }
    Fibonacci::vt=c;
    }
    void Fibonacci::in()
    {
    if(kt2()==1)
    {
    cout<<endl;
    for(int i=0;i<Fibonacci::max1;i++)
    {
    cout<<" "<<Fibonacci::b[i];
    }
    cout<<endl;
    system("pause");
    exit(1);
    }
    else
    {
    int dem=1;
    int i=Fibonacci::vt;
    i--;
    cout<<endl;
    while(dem<=Fibonacci::max2)
    {
    i++;
    for(;i<Fibonacci::d; )
    {
    cout<<" "<<Fibonacci::b[i];
    break;
    }
    dem++;
    }
    }
    }
    void Fibonacci::chay()
    {
    cout<<"
    Nhap so phan tu cua mang: ";
    cin>>n;
    Fibonacci::nhapm();
    cout<<"
    Cac phan tu cua mang la:";
    Fibonacci::xuatm();
    Fibonacci::cat1(a,n,b,&d);
    Fibonacci::cat2(a,n,b1,&d1);

    Fibonacci::max=kt1();
    Fibonacci::kt3();
    cout<<"
    Day Fibonacci dai nhat la: ";
    Fibonacci::in();
    cout<<endl;
    system("pause");
    }
    void main()
    {
    Fibonacci f;
    f.chay();
    }

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •