2019-12-22-递归-青蛙过河

2019-12-22

/****************************************************************************************
* 程序名: 青蛙过河问题(递归)                                                          
* 编制时间  2017/11/28                                                                   
*  编制人     小小书童
problem描述:  
 一条小溪尺寸不大,青蛙可以从左岸跳到右岸,在左岸有一石柱L,面积只容得下一只青蛙落脚,同样右岸也有一石柱R,面积也只容得下一只青蛙落脚。
 有一队青蛙从尺寸上一个比一个小。我们将青蛙从小到大,用1,2,…,n编号。规定初始时这队青蛙只能趴在左岸的石头L上,当然是一个落一个,
 小的落在大的上面。不允许大的在小的上面。在小溪中有S个石柱,有y片荷叶,规定溪中的柱子上允许一只青蛙落脚,如有多只同样要求一个落一个,
 大的在下,小的在上。对于荷叶只允许一只青蛙落脚,不允许多只在其上。对于右岸的石柱R,与左岸的石柱L一样允许多个青蛙落脚,但须一个落一个,
 小的在上,大的在下。当青蛙从左岸的L上跳走后就不允许再跳回来;同样,从左岸L上跳至右岸R,或从溪中荷叶或溪中石柱跳至右岸R 上的青蛙也不允许再离开。
 问在已知溪中有S根石柱和y片荷叶的情况下,最多能跳过多少只青蛙?

*****************************************************************************************
*/

#include <iostream>

using namespace std;
int  Jump(int ,int) ;
int main()
{
    int s = 0 ,y =0 , sum= 0 ; //s 为河中石柱数 ,y 为荷叶数
    cout<<"请输入石柱数S=";
    cin>>s ;
      cout<<"请输入石柱数y=";
    cin>> y ;
    sum =Jump(s,y) ;
    cout<<"Jump("<<s<<","<<y<<")="<<sum <<endl ;
    return 0;
}
int Jump(int r ,int z)
{
  int k =0 ;
  if(r==0){
     k=z+1 ;
  }
  else{
      k=2*Jump(r-1,z) ;
  }
  return k ;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值