1.求斐波那契数
import java.util.Scanner;
public class fib{
public static void main(String[] args){
//1 1 2 3 5 8 13 21 34
Scanner input=new Scanner(System.in);
System.out.println("请输入你要求的斐波那契数的第几项:");
int num=input.nextInt();
int left=1;
int right=1;
int sum=0;
if(num==1||num==2){
System.out.println(1);
}
else{
for(int i=3;i<=num;i++){
sum=left+right;
left=right;
right=sum;
}
System.out.println(sum);
}
}
}
2.汉诺塔问题(递归实现)
使用递归方法,递归一般要满足两个条件.一是要有递归公式,二是要有跳出这个递归的条件,在不断的递归过程中靠近这个条件
public class Hanoilmpl {
int count=1;
public void hanoi(int n, char A, char B, char C) {
if (n == 1) {
move(A, C);
} else {
hanoi(n - 1, A, C, B);
move(A, C);
hanoi(n - 1, B, A, C);
}
}
private void move(char A, char C) {
System.out.println(count+":move:" + A + "--->" + C);
count++;
}
public static void main(String[] args) {
Hanoilmpl hanoi = new Hanoilmpl();
System.out.println("移动汉诺塔的步骤:");
hanoi.hanoi(4, 'a', 'b', 'c');
}
}
3.青蛙跳台阶问题
一个青蛙一次可以跳一个台阶或两个台阶,问我们最终调到n台阶时有多少种可能性?
青蛙一次可以跳1台阶或2台阶,则可以每次-1或-2的可能性的函数的关系可以列出
f(n)=f(n-1)+f(n-2);
import java.util.Scanner;
public class jump{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.println("请输入青蛙需要跳的台阶数:");
int num=input.nextInt();
System.out.println(frogJump(num));
}
public static int frogJump(int num){
if(num<=0){
return 0;
}
else if(num==1){
return 1;
}
else if(num==2){
return 2;
}
return frogJump(num-1)+frogJump(num-2);
}
}