/**
* 斐波那切数列
* 兔子问题
* 青蛙跳台问题
* @author 26058
*
*/
public class Test01 {
public static void main(String[] args) {
System.out.println(numWays(10));
System.out.println(numWays2(10));
}
//循环解法
public static int numWays(int n) {
if(n==0||n==1) {
return 1;
}
int[] nums = new int[n+1];
nums[1] = 1;
nums[2] = 2;
for(int i=3;i<=n;i++) {
nums[i] = nums[i-1] + nums[i-2];
}
return nums[n];
}
//动态规划解法
public static int numWays2(int n) {
if(n==0||n==1) {
return 1;
}
int a = 1;
int b = 1;
int sum = 0;
for(int i=1;i<n;i++) {
sum = a+b;
a = b;
b = sum;
}
return sum;
}
}
斐波那切数列、兔子问题、青蛙跳台问题(非常规的递归解法)
最新推荐文章于 2024-06-04 23:11:16 发布