DP2. 跳台阶
描述
输入描述
本题输入仅一行,即一个整数 n输出描述
输出跳上 n 级台阶有多少种跳法示例1
输入:
2
输出:
2
说明:
青蛙要跳上两级台阶有两种跳法,分别是:先跳一级,再跳一级或者直接跳两级。因此答案为2示例2
输入:
7
输出:
21
C 解法, 执行用时: 2ms, 内存消耗: 336KB, 提交时间: 2022-06-16
#include<stdio.h> int main() { int n; int i; int sum[40]; scanf("%d",&n); sum[0]=0;sum[1]=1;sum[2]=2; for(i=3;i<=n;i++) { sum[i]=sum[i-1]+sum[i-2]; } printf("%d\n",sum[n]); return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 336KB, 提交时间: 2022-05-12
#include <stdio.h> #include <stdlib.h> int main() { int n; scanf("%d", &n); int i; int dp[41]; dp[0] = 1; dp[1] = 1; dp[2] = 2; dp[3] = 3; for(i = 4; i <= n; i++) dp[i] = dp[i-1]+dp[i-2]; printf("%d\n", dp[n]); return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 336KB, 提交时间: 2022-03-05
#include <stdio.h> #include <stdlib.h> int dp[41]; int main() { int n; scanf("%d", &n); dp[0]=0; dp[1]=1; dp[2]=2; for(int i=3; i<=n;i++) { dp[i]=dp[i-1]+dp[i-2]; } printf("%d", dp[n]); return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 340KB, 提交时间: 2022-05-28
#include <stdio.h> int f(int n) { int a[40], i; a[0] = 1; a[1] = 2; for (i = 2; i < 40; i++) { a[i] = a[i - 1] + a[i - 2]; } return a[n - 1]; } int main() { int n; scanf("%d", &n); printf("%d", f(n)); return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 352KB, 提交时间: 2022-06-21
#include <stdio.h> int cache[100] = {0}; int function(int number) { if(cache[number] != 0) { return cache[number]; } if(number == 1) { cache[number] = 1; return cache[1]; } else if(number == 2) { cache[number] = 2; return cache[2]; } else { cache[number] = function(number - 1) + function(number - 2); return cache[number]; } } int main() { int floor_num = 0; scanf("%d",&floor_num); int count = function(floor_num); printf("%d",count); return 0; }