Không ra kết quả

Mọi người giải thích giúp mình với: khi mình nhập 1 hoặc 0 thì nó ra 132766.
Bài mình làm như này:

#include <iostream>
using namespace std;

int main()
{
    int n(n<20);
    cin >> n;
    int a=1, b=1 , t;
    if (n==0||n==1)
        cout << "1";
    else{
        for (int i=2;i<=n;i++)
        {
            t=3*a-b;
            b=a;
            a=t;
    }
    }
    cout << t;

    return 0;
}

Đề bài như này ạ:
Cho dãy số f được tính như sau:

  • f(0)=1, f(1)=1
  • f(n)=3f(n−1)−f(n−2) với n≥2

Viết chương trình để tính giá trị f(n).


EDIT (@library): Sửa rất nhiều lỗi chính tả và viết tắt, đồng thời bổ sung thêm đề bài.

Đề bài/yêu cầu là gì???

Cái này là cú pháp gì đây???


Đừng có viết tắt!

4 Likes

đề bài như này ạ
Cho dãy số f được tính như sau:

  • f0=1, f1=1

  • fn=3f(n−1)−fn−2với n≥2

Viết chương trình để tính giá trị fn

Nếu bạn nhập 0, 1 hay nhỏ hơn thì vòng lặp sẽ không chạy, t ở phần khai báo chưa được gán giá trị. Như vậy khi in ra thì t nhận giá trị rác, giá trị này có thể thay đổi qua những lần chạy hoặc phụ thuộc vào máy hay compile mình chưa rõ lắm nhưng trường hợp này thì nó là 132766 như bạn mô tả.

5 Likes

cảm ơn bạn, mình làm được rồi

Topic closed due to no further action required.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?