/*
* 一个人去买汽水,1块钱买一瓶汽水,3个瓶盖可以
* 换一瓶汽水,2个空瓶也可以换一瓶汽水,
* 问:20块钱能喝多少瓶汽水 。
*/
#include<iostream>
#include<windows.h>
using namespace std;
int bottles=0; //定义空瓶
int caps=0; //定义瓶盖
int exchanges=0;//定义汽水
int drink(int water)
{
//2个空瓶也可以换一瓶汽水,3个瓶盖可以换一瓶汽水,
exchanges += bottles/2+caps/3+water;//到目前为止换的汽水数总数
bottles = bottles%2+water;//换完汽水后的空瓶数
caps = caps%3+water;//换完汽水后的瓶盖数
int nextWater = bottles/2+caps/3;//下轮可换汽水
bottles = bottles%2;
caps = caps%3;
if(nextWater>0){//跳出循环条件:空瓶与瓶盖不足以换到汽水
drink(nextWater);
}
return exchanges;
}
int main()
{
int money=20;
int water=money;
int sum=drink(water);
cout<<sum<<endl;
return 0;
}
* 一个人去买汽水,1块钱买一瓶汽水,3个瓶盖可以
* 换一瓶汽水,2个空瓶也可以换一瓶汽水,
* 问:20块钱能喝多少瓶汽水 。
*/
#include<iostream>
#include<windows.h>
using namespace std;
int bottles=0; //定义空瓶
int caps=0; //定义瓶盖
int exchanges=0;//定义汽水
int drink(int water)
{
//2个空瓶也可以换一瓶汽水,3个瓶盖可以换一瓶汽水,
exchanges += bottles/2+caps/3+water;//到目前为止换的汽水数总数
bottles = bottles%2+water;//换完汽水后的空瓶数
caps = caps%3+water;//换完汽水后的瓶盖数
int nextWater = bottles/2+caps/3;//下轮可换汽水
bottles = bottles%2;
caps = caps%3;
if(nextWater>0){//跳出循环条件:空瓶与瓶盖不足以换到汽水
drink(nextWater);
}
return exchanges;
}
int main()
{
int money=20;
int water=money;
int sum=drink(water);
cout<<sum<<endl;
return 0;
}