问答详情
源自:7-1 编程练习

下面关于完数的哪里不对,运行没有结果

58e38767000105fb08641152.jpg
求解答

提问者:BonnieLLLL 2017-04-04 19:45

个回答

  • Gir非碼農
    2017-04-05 00:02:23

    	public static void main(String[] args) {
    		int i,a,b=0;
    		for(i=2;i<1000;i++){
    			for(a=1;a<i;a++){
    				if(i%a==0){
    					b=a+b;
    				}
    			}
    			if(i==b){
    				System.out.println(i);
    			}
    			b=0;
    		}

    这个是我做的。唯一不同的就是12行,将b重置为0

    可以这样理解你的意思,b是作为i的真因子a的和。那么经过一轮,b不是应该重新从0开始吗?

    在你的代码里,之所以没有反应是因为一直没有相等的情况,所以不输出。

    我这个的结果你看一下~

    http://img.mukewang.com/58e3c3870001340405140507.jpg