Dãy Phi-bo-na-xi là dãy số (un) được xác định bởi: {u1=u2=1; un=un-1+un-2 (n>=3)
nghĩa là kể từ số hạng thứ 3 trở đi, mỗi số hạng đều bằng tổng của 2 số hạng đứng ngay trước nó.
a) Vt quy trình bấm phím hiển thị trên màn hình tính: un và Sn. Trong đó: Sn là tổng n số hạng đầu tiên của dãy số (un)
#include <bits/stdc++.h>
using namespace std;
int fibonacci(int n) {
int f0 = 0;
int f1 = 1;
int fn = 1;
int i;
if (n < 0) {
return -1;
} else if (n == 0 || n == 1) {
return n;
} else {
for (i = 2; i < n; i++) {
f0 = f1;
f1 = fn;
fn = f0 + f1;
}
}
return fn;
}
int main() {
int n,a=0;
cin>>n;
cout<<“Day so fibonaci: “;
for (int i = 1; i < n; i++) {
cout << fibonacci(i) << ” “;
a+=fibonacci(i);
}
cout<<“\nTong day: “<<a;
//samon247
return 0;
}
Program FNG;
Uses crt;
Type bignum = Ansistring;
Var f,g: text;
n,i: longint;
s: bignum;
Function add(a,b: bignum): bignum;
Var s,carry,i: longint;
c: bignum;
Begin
While length(a)>length(b) do b:=’0’+b;
While length(b)>length(a) do a:=’0’+a;
c:=”; carry:=0;
For i:=length(a) downto 1 do
Begin
s:=Ord(A[i])-48 + Ord(B[i])-48+carry;
carry:=s div 10;
c:=Chr(s mod 10 + 48)+c;
End;
If carry>0 then c:=’1’+c;
add:=c;
End;
Function fibo(n: longint): bignum;
Var f1,f2,f3: bignum;
i: longint;
Begin
f1:=’1′;
f2:=’1′;
For i:=2 to n do
Begin
f3:=add(f1,f2);
f1:=f2;
f2:=f3;
End;
fibo:=f1;
End;
Begin
Clrscr;
Write(‘Nhap n: ‘); Readln(n);
s:=’0′;
Writeln(‘Fibo thu ‘,n,’ la: ‘,fibo(n));
For i:=1 to n do
s:=add(s,fibo(i));
Write(‘S = ‘,s);
Readln
End.