01/10/2018, 09:59

Giúp bài tập có công thức truy hồi a(n) = 2*a(n-1)+a(n-2)

1.Dãy {an} được cho dưới dạng công thức truy hồi:
an = 2an-1 +an-2;
a0 =1; a1 = 2
Lập chương trình in ra màn hình n phần tử đầu của dãy theo.

  • Dùng mảng 1 chiều để lưu trữ các phần tử của dãy
Trần Hoàn viết 12:05 ngày 01/10/2018

Bài này bạn dùng hàm đệ quy.
Bạn có thể google search “Hàm tính fibonacci đệ quy” là hiểu

HK boy viết 12:04 ngày 01/10/2018

Đề bài bảo gì thì bạn làm nấy thôi.
Tạo mảng a[], a[0]=1, a[1]=2, a[n]=2*a[n-1]+a[n-2].

Sengkhar Thanouxay viết 12:11 ngày 01/10/2018

Hàm đệ quy làm được rồi nhưng cô cho mình làm thêm nữa làm theo dùng mảng 1 chiều
đầy là code hàm đệ quy mình làm

#include "Header.h"
int dq(int n);
int dq (int n)
{ if (n==1 )
    return 1;
else if (n==2) return 2;
  else return (2*(dq(n-1))+ dq(n-2));
}
void main()
{   
    int n,i;
    cout<<"Tim so hang thu may cua day: ";cin>>n;
    cout<<"\n So hang thu "<<n<< " cua day la "<<dq(n);
    cout<<"\n Day "<<n<<"  so hang tu dau cua day  :";
for (i=1;i<=n;i++)
 cout<< dq(i)<< "\t";
 getch();
}
rogp10 viết 12:01 ngày 01/10/2018

Chẳng khác gì thằng Fibo, dùng 3 biến để tính.

Nguyễn Vũ Tuấn Linh viết 12:09 ngày 01/10/2018

thực chất cái hàm đệ qui cũng như là vòng lặp for thôi bạn

rogp10 viết 12:01 ngày 01/10/2018

Câu này chỉ đúng với đệ quy tuyến tính.

Bài liên quan
0