新手学习c++的日记,大佬勿喷!
1.递归法(代码简洁易懂)
#include <iostream>
using namespace std;
int Get(unsigned int n){
if(n == 1 || n == 2) return 1;
return Get(n-1)+Get(n-2);
}
int main(){
printf("%d",Get(4));
}
2.数组法
#include <iostream>
using namespace std;
int main(){
int n;
scanf("%d",&n);
int a[n];
a[0] = 1;
a[1] = 1;
for(int i = 2 ; i <= n-1 ; ++i){
a[i] = a[i-2] + a[i-1];
}
printf("%d",a[n-1]);
}
3.for循环法(与数组法思路一样)
#include <iostream>
using namespace std;
int main(){
int x1=1,x2=1,i;
cin >> i;
if(i == 1 || i == 2){
cout << 1;
}else{
for(int j=1;j<=i-3;j++){
int x3 = x1+x2;
x1=x2;
x2=x3;
}
cout << x1+x2;
}
}