普通版青蛙跳台阶
题目:
有n级台阶,一只青蛙每次可以跳一阶或两阶,问青蛙从0阶跳到n阶有多少种跳法
原理:
当n=0;f(0)=0;
当n=1;f(1)=1;
当n=2; f(2)=2;
当n>=3;f(n)=f(n-1)+f(n-2);
#include<stdio.h> int main() { int n; scanf("%d", &n); int dp[1000]; dp[0] = 0; dp[1] = 1; dp[2] = 2; int i; for (i = 3; i <= n; i++) { dp[i] = dp[i - 1] + dp[i - 2]; } printf("%d\n", dp[n]); return 0; }
进阶版青蛙跳台阶
题目:
有n级台阶,一只青蛙每次最多可以跳n阶台阶,问青蛙从0阶跳到n阶有多少种跳法
原理:
当n=0;f(0)=0;
当n=1; f(1)=1;
当n=2;f(2)=f(1)+1=2;
当n=3;f(3)=f(2)+f(1)+1=4;
所以当n>=2;f(n)=2f(n-1);
#include<stdio.h> int main() { int n; scanf("%d", &n); int dp[1000]; dp[0] = 0; dp[1] = 1; int i; for (i = 2; i <= n; i++) { dp[i] = 2 * dp[i - 1]; } printf("%d\n", dp[n]); return 0; }
C语言青蛙跳台阶
最新推荐文章于 2023-02-27 18:29:57 发布