先写出暴力算法
int ff(int n)
{
if (n >2)
{
return ff(n - 1) + ff(n - 2);
}
else
{
return 1;
}
}
然后根据递归,转换为DP,自底向上根据递归式递推出下一个状态
因为n<=2都是1 所以该范围下的状态都是1,
int *arr = new int[ 60];
memset(arr, 0, (sizeof (int))*(60));
arr[0] = 1;
arr[1] = 1;
arr[2] = 1;
for (int i = 3; i <= 10; i++)
{
arr[i] = arr[i - 1] + arr[i - 2];
}
cout << arr[10];