DESKTOP-S58I0I8_20200903-李春晓

问题 1

字段,方法存放再哪里,入栈方式是什么样的啊

问题2

package Sixty;

public class Text04 {

    
    int k=2;
    public void factorization(int n ) {
        
        while(k<=n) {
            if(k==n) {
                System.out.print(k);
                break;
            }else if(n%k==0) {
                System.out.print(k+"*");
                n=n/k;
                factorization(n);
                break;
            }else if(n%k!=0) {
                k++;
                factorization(n);
                break;
            }
        }
        
    }
}

一开始k写在了方法内部,递归调用的时候k就会重新压栈,重新执行,导致结果受到了影响

对递归调用中的break理解不深刻,不理解删去break后产生的影响

删去后两个break后

    while(k<=n) {
            if(k==n) {
                System.out.print(k);
                break;
            }else if(n%k==0) {
                System.out.print(k+"*");
                n=n/k;
                factorization(n);
            }else if(n%k!=0) {
                k++;
                factorization(n);
            }
        }
        

结果为:

2*3*3*55555*5*9999999*

已解决----------------------------------

吐槽

每天对于以前的知识理解都更新一点点,感觉多会了一点点,当天的知识还是只能吸收百分之五六十

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1