#include <iostream>
#include<memory>
using namespace std;
//使用传统动态内存分配,在程序结束需要delete,否则会造成内存泄漏
/*int * fibonacci(int num){
int *a = new int[num+1];
a[0] = 0;
a[1] = 1;
for(int i=2;i<=num;i++){
a[i] = a[i-1]+a[i-2];
}
cout<<a[num]<<endl;
return a;
}*/
//使用智能指针
unique_ptr<int[]> fibonacci(int num){
unique_ptr<int[]> a(new int[num+1]);
a[0] = 0;
a[1] = 1;
for(int i = 2;i<=num;i++){
a[i] = a[i-1]+a[i-2];
}
return a;
}
int main() {
/* int *a = fibonacci(6);
delete []a;*/
unique_ptr<int[]> a(fibonacci(6));
cout<<a[6]<<endl;
return 0;
}