如何解决递归调用中的堆栈溢出错误?

How to solve a stack overflow error in recursive call?

import java.util.Scanner;

public class Task5 {

    private static void stack(int x) {
        if (x == 0) return;
        stack(x - 1);
        if (x % 35 == 0) {
            System.out.println();
        }
        System.out.print(x + " ");
    }

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.print("Enter number: ");
        int x = sc.nextInt();
        stack(x);
    }
}

任何大于 9200 的数字都会导致堆栈溢出错误。是不是递归调用循环次数太多了?

是的,您遇到了溢出,因为您的递归堆栈因大量输入而变得非常深。这个函数没有理由需要递归,我建议使用循环实现迭代版本。