文章
4
粉丝
209
获赞
2
访问
2.2k
// 定义一个函数,用于计算数列的第 n 项
long long f(int n){
// 初始化一个足够大的数组来存储数列的值
long long dp[70];
// 数列的前三项分别为 1, 1, 和 2
dp[0] = dp[1] = 1;
dp[2] = 2;
// 从第四项开始,每一项都是前三项的和
for(int i = 3; i <= n; i++ ){
dp[i] = dp[i-1] + dp[i-2] + dp[i-3];
}
// 返回第 n 项的值
return dp[n];
}
// 主函数
int main(){
// 定义变量 n
int n;
// 使用 scanf 函数读取输入直到文件结束
while(~scanf("%d",&n)){
// 调用 f 函数计算第 n 项的值,并打印出来
printf("%lld\n",f(n));
}
}
//dp 数组用来存储数列的每一项的值,以便可以快速访问之前计算的结果,而不需要重复计算。这种方法称为记忆化,是动态规划技术的一个常见特点。
登录后发布评论
暂无评论,来抢沙发