






Preview text:
BÀI TẬP FIBONACI
BÀI 33. Dãy Số Fibonaci được định nghĩa như sau: s0= s1 =1; s n = s n-1 +sn-2 vơi n>=2. Cho
số nguyên dương n.(n<=93). Tính số sn ? Input Output 8 34 BÀI LÀM #include using namespace std; int F(int n){ if(n==0||n==1) return 1; else return F(n-1)+F(n-2); } int main(){ int n; cin>>n;
cout << F(n)<< endl; return 0; }
BÀI 34. Dãy Số Fibonaci được định nghĩa như sau: s0= s1 =1; s n = s n-1 +sn-2 vơi n>=2. Cho
số nguyên dương n.(n<=93). hãy in ra n số fibonacy đầu tiên. Input Output 8 1 1 2 3 5 8 13 21 34 BÀI LÀM #include using namespace std;
long long fibonacy(long long n) { long long f1=1,f2=1,f, i=3; if(n==1||n==2) return 1; while (i<=n) {f=f1+f2; f1=f2; f2=f; i++; } return f; } int main(){ long long n; cin>>n;
for(long long i=1;i<=n;i++)
cout << fibonacy(i) <<" "; return 0; }
BÀI 35. Cho số n hãy in ra nhữngsố fibonacy nhỏ hơn n. BÀI LÀM #include using namespace std;
long long fibonacy(long long n) { long long f1=1,f2=1,f, i=3; if(n==1||n==2) return 1; while (i<=n) {f=f1+f2; f1=f2; f2=f; i++; } return f; } int main(){ long long n; cin>>n; long long i=1; while (fibonacy(i)<=n)
{cout << fibonacy(i) <<" "; i++;} return 0; }
Bài 90. Bài toán. Số Fibonacci:
a) Tìm số Fibonacci thứ n (n <= 40)
b) Tìm các số Fibonacci nhỏ hơn hoặc bằng n.
c) Tìm các số Fibonacci nằm trên đoạn [m, n].
d) Tìm các số vừa là số Fibonacci vừa là số nguyên tố trên đoạn [m, n].
Yêu cầu: Nhập vào số n. Trong file đầu ra ghi 4 kết quả như trên. BAI5.INP BAI5.OUT 3 40 102334155 1 1 2 3 5 8 13 21 34 5 8 13 21 34 5 13 Bài làm #include using namespace std; int nguyenTo(int n) { if (n < 2) return 0;
for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) { return 0; } } return 1; } int Fibonacci(int n) { int a1 = 1, a2 = 1;
if (n == 1 || n == 2) return 1; int i = 3, a; while (i <= n) { a = a1 + a2; a1 = a2; a2 = a; i++; } return a; } int main() { int m, n, i = 0; cin >> m >> n; // So Fibonacci thu n:
cout << Fibonacci(n) << endl; // So Fibonacci < n: for (i = 0; i < n; i++) {
if (Fibonacci(i) < n) cout << Fibonacci(i) << " "; } cout << endl;
// So Fibonacci nam trong doan [m,n]: for (i = 0; i < n; i++) {
if (Fibonacci(i) > m && Fibonacci(i) < n)
cout << Fibonacci(i) << " "; } cout << endl;
// So Fibonacci vua la so nguyen to doan [m,n]: i = m; while (Fibonacci(i) < n) { int fi = Fibonacci(i); if(nguyenTo(fi)) { if (fi > m)
cout << fi << " "; } i++; } return 0; }
Bài 13. In ra n số fibonaci đầu tiên #include using namespace std; int main() { long long a,b,x,y,n,i; a=0; b=1; cout << "Nhap n: "; cin>>n;
cout << n << " phan tu dau tien cua day Fibonacci la: " << endl; cout << endl; cout << a << endl; cout << b << endl; for(i=1;i<=n-2;i++) { x=a+b; cout << x << endl; y=a; a=b; b=x; } return 0; } DÃY FIBONACI #include using namespace std;
//CÁC DẠNG TOÁN VỀ FIBONACI:
//FIBONACI Dang 1: S(0)= S(1) =1; S(n) = S(n-1) +S(n-2) với n>=2 //Nhap day so fibonaci. long long fb1(int x) { long long f1=1,f2=1,f, i=3; if(x==1||x==2) return 1; while (i<=x) {f=f2+f1; f1=f2; f2=f; i++;} return f; }
//Xuat day so fibonaci n so dau tien.. void xuat(int x) { int i; for(i=1;i<=x;i++) cout< cout<}
//In ra những số fibonacy nhỏ hơn n void xl2(int x) { for(int i=0;i { if(fb1(i) } cout<}
//Tìm các số Fibonacci nằm trên đoạn [a, b] void xl3(int x) { int a,b; cin>>a>>b; for(int i=0;i {
if(fb1(i)>=a&&fb1(i)<=b) cout< } cout<}
//In ra cac so nguyen to trong n so fibonaci dau tien. bool snt(int p) { int dem=0; for(int i=1;i<=p;i++) { if(p%i==0) dem=dem+1; } if(dem==2) return true; else return false; } void xl4(int x) { for(int i=0;i {
if(snt(fb1(i))==true) cout< } cout<}
//In ra cac so chinh phuong cua n so fibonaci dau tien. bool scp(int x) {
if(sqrt(x)==int(sqrt(x))) return true; else return false; } void xl5(int x) { for(int i=0;i {
if(scp(fb1(i))==true) cout< } cout<}
//FIBONACI Dang 2: S(1)= S(2) =1; S(3) = 4; S(n+3)=2S(n+2) +2S(n+1)-S(n) với n>=3 //Nhap day so fibonaci long long fb2(int x) {
long long f1=1,f2=1,f3=4, f, i=4; if(x==1||x==2) return 1; if(x==3) return 4; while (i<=x)
{f=2*f3+2*f2-f1; f1=f2; f2=f3; f3=f; i++; } return f; }
//Xuat day so fibonaci n phan tu dau tien. void xuat1(int x) {
for(int i=1;i<=x;i++){cout< cout<}
//FIBONACI Dang 3: S(0)=0; S(1)=1; S(2) =2; S(3) = 6; S(n+4)=2S(n+3) +S(n+2)-2S(n+1)- S(n) với n>=3 //Nhap day so fibonaci long long fb3(int x) {
long long f,f0=0, f1=1, f2=2, f3=6, i=4;
if(x==0) return 0; if(x==1) return 1; if(x==2) return 2; if(x==3) return 6; while (i<=x) { f=2*f3+ f2 - 2*f1 - f0;
f0=f1; f1=f2; f2=f3; f3=f; i++; } return f; }
//Xuat day fibonaci cua n so dau tien void xuat2(int x) { for (int i = 0; i<=x;i++) cout< cout<} int main() { int n; cin>>n; xuat(n); xuat1(n); xuat2(n);
xl2(n); xl3(n); xl4(n); xl5(n); return 0; }
Một số dãy FIBONACI thường gặp
1. Cho a1 =a2 = 1; a3= 4; an+3 = 2an+2+ 2an+1 – an;
2. Cho a0 =0; a1 = 1; a2= 2; a3=6; an+4 = 2an+3+ an+2 –2 an+1 – an ;
3. Cho a0 =4; a1 = a2 = 9; an+1 = anan-1 – 2(an+an-1) – 8an-2;
4. Cho a0 =3; a1 = 11; a3= 4; an+3 = 2an+2+ 2an+1 – an;