日期:2014-05-20  浏览次数:20690 次

水仙花数代码
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);
}
}


看不出哪里错了导致的输出不对

------解决方案--------------------
套了4层for
------解决方案--------------------

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题好简单,但是当初就感觉好难。。

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

+1

public 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);