public class Qiu_wanshu {
 public static void main(String args[]){
 int m,n;
 int t=0;
 for(m=1;m<1000;m++)
 {
 for(n=1;n<m;n++)
 {  
 if(m%n==0)
 {
 t=t+n;
 }
 }
 if(m==t)
 System.out.print(m);
 }
 }
}运行之后没有输出结果,高手看一下问题出在哪里。

解决方案 »

  1.   

    int=0 放到第一个for里面去
      

  2.   

    打错。。
    int t=0; 放到第一个for里去
      

  3.   

    为什么要放在for哩,和C的差别能说说嘛
      

  4.   


    因为这里t的作用是记录m因子的和,然后用t与m做比较,相等的输出。
    所以t在m没循环一次的时候应该初始掉。不然t就一直都是累加的状态,m=1-5的所有因子都会被加到t里面去,这样t永远不可能等于m,所以就不会有打印。C不太懂,不过感觉C里这样做也是输出不了的。