当前位置:首页 > JAVA教程 >

JAVA实例:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个

发布时间:2015-11-21 07:50:38 作者:佚名 阅读:(4820)

publicclass Dg {
staticintts=0;//桃子总数
intfs=1;//记录分的次数
staticinths=5;//猴子数...
inttsscope=5000;//桃子数的取值范围.太大容易溢出.
publicint fT(int t){
if(t==tsscope){
//当桃子数到了最大的取值范围时取消递归
System.out.println("结束");
return 0;
}
else{
if((t-1)%hs==0 && fs <=hs){
if(fs==hs)
{
System.out.println("桃子数 = "+ts +" 时满足分桃条件");
}
   fs+=1;
   return fT((t-1)/5*4);// 返回猴子拿走一份后的剩下的总数
}
else
{
//没满足条件
fs=1;//分的次数重置为1
return fT(ts+=1);//桃子数加+1
}
}
}
publicstaticvoid main(String[] args) {
new Dg().fT(0);
}
 
}

猴子分桃问题。有一堆桃子,6只猴子来分。第一只猴子把这堆桃子平均分为6份,多了一个,这只猴子把多的一个吃掉,并拿走了一份;第二只猴子把剩下的桃子又平均分成6份,又多了一个,它同样把多的一个吃掉,并拿走了一份;第三、第四、第五、第六只猴子都是这样做的,问海滩上原来最少有多少个桃子?

public class text10{
 public static void main(String[] args) {
 int sum2;    
 int sum1 = 7;
 int count;  
 int index;  
 boolean flag = true;
  while(flag)
   {
   index = 0;  
   count = 0;  
   sum2 = sum1;
   while(count < 6)
   {
    if(sum2%6 == 1)
    {
    sum2 -= 1;  
    sum2 -= sum2/6;
    index++;
    }
    if(index == 6)
    {
    System.out.println("最少有 " + sum1 + " 个桃子!");
    flag = false;
    break;
    }
   count++;
   }
   
  sum1 += 6; }
  }
 
}    //版权所有    吾爱IT编程www.itbiancheng.com 

欢迎分享转载→ JAVA实例:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个

© 2015-2019 - 吾爱编程网 版权所有 苏ICP备18033726号-1关于我们 - 网站声明 - 联系我们