文章
4
粉丝
209
获赞
11
访问
3.0k
- // 定义一个函数,用于计算数列的第 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 数组用来存储数列的每一项的值,以便可以快速访问之前计算的结果,而不需要重复计算。这种方法称为记忆化,是动态规划技术的一个常见特点。
登录后发布评论
暂无评论,来抢沙发