5、跳台阶问题
【问题描述】一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少总跳法,并分析算法的时间复杂度,例如
n 为1 时只有一种跳法
n 为2 时只有两种跳法
【输入形式】输入一个整数n
【输出形式】n级的跳法数,整数m
【样例输入】
6
【样例输出】
13
【样例说明】
输入与输出均为整数
import java.util.Scanner;
public class Main {
public static int jumpFloor(int target) {
if (target == 1) {
return 1;
} else if (target == 2) {
return 2;
} else {
int sum=jumpFloor(target-1)+jumpFloor(target-2);
return sum;
}
}
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int target= scan.nextInt();
System.out.println(jumpFloor(target));
}
}
(4)第四道题的算法思路和结果
1)算法思路(可用流程图和自然语言描述,建议使用流程图规范表述,如果使用自然语言要求简洁无歧义)
这道题最简单的就是用递归方法了吧,简单容易理解。因为f(1)=1;
f(2)=2;
f(3)=f(1)+f(2)
f(4)=f(3)+f(2)
…
f(n)=f(n-1)+f(n-2);
像那个汉诺塔问题。找到到数学规律直接递归就行.
没有源码,这个课下再做一遍,我百度了一下,看到另一种解法,真鸡儿秀