Đề 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;
}