int fib(int n) {
if (n < 2) {
return n;
}
int *dp = (int *)malloc((n + 1) * sizeof(int)); // 为 dp 数组分配内存
dp[0] = 0; // 初始化 dp[0]
dp[1] = 1; // 初始化 dp[1]
for (int i = 2; i <= n; ++i) {
dp[i] = dp[i - 1] + dp[i - 2]; // 计算 dp[i] 的值
}
int result = dp[n]; // 存储最终结果
free(dp); // 释放 dp 数组的内存
return result;
}