书山有路勤为径
先写出暴力递归解法
int f(int n) { if (n > 1) { return f(n - 1)*n; } else return 1; }
然后转换为DP 保存递归了的状态,自底向上根据递归式递推出下一个状态
arr[0] = 1; arr[1] = 1; for (int i = 2; i <= 4; i++) { arr[i] = arr[i - 1]*i; } cout << arr[4] << endl;