JAVA基础100道练习题——11递归求斐波那契数列的第N项、12按顺序打印一个数字的每一位(列如1234打印出1 2 3 4)(递归)、13递归求1+2+3...+10

<1>题目介绍1

递归求斐波那契数列的第N项

<2>思路分析

斐波那契数列为:0、1、1、2、3、5、8...观察可以发现从第三项开始,每一项为前两项的和,所以只需要从第三项开始num = fibo(n-1)+fibo(n-2)即可,递归出口就是当n等于1或者n等于2时,返回1。

<3>代码展示
 

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int num = scan.nextInt();
        System.out.println(fibo(num));
    }
    public static int fibo(int num){
        if(num==1||num==2){
            return 1;
        }else{
            return fibo(num-1)+fibo(num-2);
        }
    }

<4>结果展示

<1>题目介绍2

按顺序打印一个数字的每一位(列如1234打印出1 2 3 4)(递归)

<2>思路分析

我们得到数字的每一位很简单,只需要模10、除10即可,但是要顺序打印,就需要将除10的动作放在前面,模10的动作放在后面

<3>代码展示
 

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int num = scan.nextInt();
        print(num);
    }
    public static void print(int num){
        if(num/10>0){
            print(num/10);
        }
        System.out.print(num%10+" ");
    }

<4>结果展示

<1>题目介绍3

递归求1+2+3...+10

<2>思路分析

只需要按着顺序计算即可,递归的出口就是当n等于1的时候返回1

<3>代码展示
 

    public static void main(String[] args) {
        System.out.println(fac(10));
    }
    public static int fac(int num){
        if(num==1){
            return 1;
        }
        return num+fac(num-1);
    }

<4>结果展示

猜你喜欢

转载自blog.csdn.net/yahid/article/details/123622584