Lập trình căn bản: tìm số Fibonacci thứ (n), bằng vòng lặp và bằng đệ quy


Đề bài: tìm số Fibonacci thứ (n), biết số Fibonacci thứ n được tính theo công thức sau
- nếu n = 1 hoặc n = 2 thì F(n) = 1
- nếu n>2 thì F(n) = F(n-1) + F(n-2)

Cách 1: dùng vòng lặp và mảng

#include <stdio.h>

int
main(){
int
n;
printf("Nhap n: ");
scanf("%d",&n);
int
F[n+1];
F[1]=1;
F[2]=1;
for
(int i=3;i<=n;i++){
F[i]=F[i-1]+F[i-2];
}

printf("F(%d) = %d",n,F[n]);
return
0;
}

Cách 2: dùng vòng lặp, không dùng mảng

#include <stdio.h>

int
main(){
int
n;
printf("Nhap n: ");
scanf("%d",&n);
int
f,f1,f2;
f=f1=f2=1;
for
(int i=3;i<=n;i++){
f=f1+f2;
f1=f2;
f2=f;
}

printf("F(%d) = %d",n,f);
return
0;
}

Cách 3: dùng đệ quy

#include <stdio.h>

int
Fibo(int n){
if
(n==1 || n==2)
return
1;
else
return
Fibo(n-1)+Fibo(n-2);
}

int
main(){
int
n;
printf("Nhap n: ");
scanf("%d",&n);
printf("F(%d) = %d",n,Fibo(n));
return
0;
}

Bài liên quan

Bài liên quan