public class shuixianhua
{
public static void main (String args[])
{
int a=1;
int b=1;
int c=1;
int i=100;
for(;i<=1000;i++)
{
for(;a<=9;a++)
  {
     for(;b<=9;b++)
      {
for(;c<=9;c++)
  {
//if(a==1 && b==5 && c==3)
//{System.out.println(i);}
   if(((a*a*a)+(b*b*b)+(c*c*c))==i)
   {
    System.out.println(i);
   }
  }
      }
   }//System.out.println(""+a+b+c);
}
System.out.println("wrong"+a+b+c+i);
}
}看不出哪里错了导致的输出不对

解决方案 »

  1.   

    wrong1010101001  输出结果可以看出其实if那个条件好像并没有成功,但是事实上应该是成功的才对吧
      

  2.   

    ((a * a * a) + (b * b * b) + (c * c * c)) == i
    i=1000之内 这个条件不成立
      

  3.   

    你的变量 如 c 在第四层for走完之后c=9 b=1;当b=2的时候 c=9 第四层for不会走了
    要么int i=100在for里面声明
    要么在for结束直接 变量重新初始化赋值。
      

  4.   


    public static void main(String[] args) {
    for (int i = 100; i <= 1000; i++) {
    for (int a = 1; a <= 9; a++) {
    for (int b = 1; b <= 9; b++) {
    for (int c = 1; c <= 9; c++) {
    if (((a * a * a) + (b * b * b) + (c * c * c)) == i) {
    System.out.println(i);
    }
    }
    }
    }
    }
    }
      

  5.   

    public class shuixianhua
    {
    public static void main (String args[])
    {
    for(int i=100;i<=1000;i++)
    {
    for(int a=1;a<=9;a++)
      {
         for(int b=1;b<=9;b++)
          {
    for(int c=1;c<=9;c++)
      {
       if(((a*a*a)+(b*b*b)+(c*c*c))==i)
       {
        System.out.println(i);
       }
      }
          }
       }
    }
    }
    }
    这样修改之后,也会出现问题,if语句是执行了,但是有的会输出6次有的会输出3次,但是这样似乎到999又会重新来过?
      

  6.   

    你把((a*a*a)+(b*b*b)+(c*c*c))==i 成立的时候 a,b,c各自是多少 打印出来 看看数据 
      

  7.   


    public class Test3
    {
      public static void main(String[] args)
      {
       for(int i=100;i<999;i++)
       {
        int g=(i%100)%10;
        int s=(i%100)/10;
        int b=(i/100);
        if(g*g*g+s*s*s+b*b*b==i)
        {
         System.out.println(i);
        }
       }
      }
    }标准的。
    另外:
    http://houhuan0506.blog.163.com/blog/static/1194278020102225157738/
    java50题以及答案。。当初我学java就是从这里开始的。。
    现在回头看看,50题好简单,但是当初就感觉好难。。
      

  8.   

    +1public class shuixianhua
    {
            public static void main (String args[])
            {
                int a=1;
                int b=0;
                int c=0;
                for(;a<=9;a++)
                {
                    for(;b<=9;b++)
                    {
                        for(;c<=9;c++)
                        {
                            if(((a*a*a)+(b*b*b)+(c*c*c))==(a*100+b*10+c))
                            {
                                System.out.println("水仙花数"+a+b+c);
                            }
                        }
                        c=0;
                    }
                    b=0;
                }
            }
    }