值太大了 long sum=0;下面的也改改

解决方案 »

  1.   

    for(int n=0;sum<10051005;n=n++);int n = 0;n=n++;
    {
     sum=sum+n*n;}
    红色的是干吗哟
      

  2.   

    for(int n=0;sum<10051005;n=n++);int n = 0;n=n++;
    {
     sum=sum+n*n;}这么写 下面还引用了 n
      

  3.   


    public class Test {
        public static void main(String[] args) {
            int sum = 0, n = 0;
            for (n = 0; sum < 10051005; n++) {
                sum += n * n;
            }
            System.out.println(n);
        }
    }
      

  4.   

    你的for循环是这么写的for();注意这个分号.思考下你的语句,你的sum的值始终为0,所以你的for是死循环.这应该是编译器编译时发现的问题.
      

  5.   

    for(int n=0;sum<10051005;n=n++);  你这for条件后跟了个;  肯定出错啊 
    ;代表语句结束
      

  6.   

    严谨一点的答案应该是:
    public class Test { public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println(getN(10172500));
    }

    public static int getN(int sum)
    {
    int total=0;
    int n=0;
    while(true)
    {
    total+=n*n;
    if(total==sum)
    {
    if(n>sum)
    {
    return -1;//代表没有这样的数,比如sum=3,4,,,
    }else
    {
    return n;
    }
    }
    n++;

    }
    }}
      

  7.   


    楼主,首先,你的算法本身就是错的!!!
    人家要的是0*0+1*1+2*2+3*3+......+n*n=10051005 ;
    也就是if(sum == 10051005 ) System.out.println(n);
    而你呢,你知解释sum<10051005,然后n++,我靠,人家要你算的就是n啊 !!!
    ------------
    I 服了 you ,同时服了这么多楼帮你一起错下去 ... 
      

  8.   

    int n = 0;
    n = n++;
    System.out.println(n);
    大家讨论一下n的输出吧
      

  9.   


    楼主,首先,你的算法本身就是错的!!!
    人家要的是0*0+1*1+2*2+3*3+......+n*n=10051005 ;
    也就是if(sum == 10051005 ) System.out.println(n);
    而你呢,你知解释sum<10051005,然后n++,我靠,人家要你算的就是n啊 !!!
    ------------
    I 服了 you ,同时服了这么多楼帮你一起错下去 ... 路过!