java练习

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); 
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值