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

2015-11-21     浏览次数:

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 

*转载请注明出处,更多资料尽在 吾爱编程
返回吾爱编程首页