首页 > 解决方案 > 我想通过java中的递归打印1到n个数字

问题描述

public class Main {
    public static void main(String[] args) {
        print(10);
    }
    static void print(int s)
    {
        if (1==s) {
            System.out.print(s);
        }
        System.out.print(s);
        print(s-1);
    }
}

但我想要这样的输出:

12345678910

标签: javarecursion

解决方案


你现有的递归永远不会结束。你应该只在s >= 1.

要按升序打印数字,您需要先进行递归调用,然后打印当前数字:

static void print(int s)
{
    if (s >= 1) {
      print(s-1);
      System.out.print(s);
    }
}

推荐阅读