一瓶啤酒2元钱,两个空瓶换一瓶,4个瓶盖换一瓶,10元买多少瓶?递归实现

import java.util.Scanner;
public class DateTest {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int T = sc.nextInt();
		//第一次换的瓶子
		int m=T/2;
		DateTest dateTest = new DateTest();
		//第一个参数,第一次换的总数,
		//第二个参数,换前剩余总空瓶子
		//第三个参数,换前剩余总空瓶盖
		System.out.println("总数"+dateTest.pin(m,0,0));
	}
	int pin(int m,int n,int k){
		if(m+n<2&&m+k<4){
			return m;
		}
		//剩的
		int r1=n;
		int r2=k;
		//总数
		int rn1=m+n;
		int rn2=m+k;
		//当前遗留
		r1=rn1;
		r2=rn2;
		//新酒
		int nj=0;
		if(rn1>1){
			//酒瓶换
			r1=rn1%2;
			rn1=rn1/2;
			nj+=rn1;
		}
		if(rn2>3){
			//瓶盖换
			r2=rn2%4;
			rn2=rn2/4;
			nj+=rn2;
		}
		return m+pin(nj,r1,r2);
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值