java 栈溢出问题求教

public static void print(int n) {   
    StringBuilder str=new StringBuilder();
    if(n<10) str=str.append(n);
    else {   		
    	he(n-9);
    	str=str.append(9);
    }
    System.out.print(str);
}
请问这个函数因为n的数字过大会导致栈溢出,报错Exception in thread "main" java.lang.StackOverflowError。
原因是每一次递归都会产生一个对象,请问这个该如何解决?
#Java#
全部评论
网易笔试?
点赞 回复
分享
发布于 2019-09-21 18:27
import java.util.Scanner; public class Main { public static void main(String[] args) {         Scanner in = new Scanner(System.in);         int n=in.nextInt();         int[] id=new int[n];         for(int i=0;i<n;i++)             id[i]=in.nextInt();         in.close();         for(int i=0;i<n;i++) {          StringBuilder str=new StringBuilder();         int tmp=id[i];         while(tmp>9) {          str.append(9);          tmp-=9;                }         System.out.print(tmp);         if(id[i]>9)System.out.print(str);         }                    } } 输入:1 100000 输出为空白...
点赞 回复
分享
发布于 2019-09-21 22:54
滴滴
校招火热招聘中
官网直投

相关推荐

1 1 评论
分享
牛客网
牛客企业服务