练习: 水仙花数、百钱白鸡、百马百担

题目一:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。

           例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。

 

     int a=0;
    for(int g=0;g<10;g++) //穷举各位
   {
         for(int s=0;s<10;s++) //穷举十位
        {
             for(int b=1;b<10;b++) //穷举百位
            {
                 a=g+s*10+b*100;
                 if(g*g*g+s*s*s+b*b*b==a) //满足水仙花数条件
                {
                    System.out.println("a="+a);
                }

           }
       

        }
     

    }

 

 

题目二:我国古代数学家张邱建在《算经》中出了一道“百钱买百鸡”的问题,题意是这样的:

           5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。

           现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。

方法1:

for(int g=0;g<20;g++)
{
    for(int m=0;m<33;m++)
   {
        if((g*5+m*3+(100-g-m)/3==100)&&(100-g-m)%3==0)
       {
           System.out.println
           ("公鸡"+g+"只"+g*5+"钱\t"+
                   "母鸡"+m+"只"+m*3+"钱\t"+
                           "雏鸡"+(100-g-m)+"只"+(100-g-m)/3+"钱");
       }
   }
}

 

方法2:

for(int g=0;g<20;g++)
{
for(int m=0;m<33;m++)
{
for(int c=0;c<100;c+=3)
{
if((g*5+m*3+c/3==100)&(g+m+c==100))
{
System.out.println
("公鸡"+g+"只"+g*5+"钱,"+
 "母鸡"+m+"只"+m*3+"钱,"+
 "雏鸡"+c+"只"+c/3+"钱");
}
}

}
}

 

题目三:这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,

           问有大,中,小马各几匹?

for(int d=0;d<33;d++)
{
    for(int z=0;z<50;z++)
   {
        for(int x=0;x<100;x+=2)
       {
            if(d*3+z*2+x/2==100 & d+z+x==100)
           {
                 System.out.println
                 ("大马"+d+"匹驮"+d*3+"担货,"+
                  "中马"+z+"匹驮"+z*2+"担货,"+
                  "小马"+x+"匹驮"+x/2+"担货");
           }
      }
   }
}

posted @ 2016-02-25 21:45  庚xiao午  阅读(550)  评论(0编辑  收藏  举报