递归实现猴子分桃 java实现

       5只猴子摘了一堆桃子,约好第二天早上来分。第一只猴子来得早,它将桃子平分成成5堆,多出1个,它把多出的一个吃了,把属于自己的一堆拿走了,将剩下的还混成一堆,其他猴子来了也正好按一样的方法处理。

       编程求出原来最少有多少个桃子。(用递归函数。)


下面是我写的递归算法:

public class PeachDivideAlgorithm {
 private static int num;//桃子总数
 private static int count;//猴子总数,也是分桃子的次数
 public static int getResult(int count){
  if(count==0){
   return 1;
  }
  if((num-1)%5!=0){
   return -1;
  }
  num=(num-1)*4/5;
  return getResult(count-1);
 }
 public static void main(String[] args){
  count=5;
  for(int i=0;i<10000;i++){//桃子数在10000内的穷举
   num=i;
   if(getResult(count)==1){
    System.out.println("the number of the peach:"+i);
   }
  }
 }
}

打印结果:

the number of the peach:3121
the number of the peach:6246
the number of the peach:9371

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值