描述
明明是个喝水狂魔,他去便利店买了n瓶水,每瓶水m元。已知3个空瓶可以换一瓶水,7个瓶盖也可以换一瓶水。求明明最多能喝几瓶水?
输出
最多换到的瓶数。
输入样例 1
3 2
3 3
3 10
输出样例 1
0
1
4
#include<stdio.h>
int ps(int eb,int pg,int p){ //求空瓶和瓶盖能换到的瓶数函数
if(eb<3&&pg<7){ //不满足两个要求,退出循环
return p;
}else{
return ps(eb/3+eb%3+pg/7,pg/7+pg%7+eb/3,eb/3+pg/7+p); //递归
//能换到的空瓶数=3个空瓶换1瓶水+换空瓶多出剩余的水+瓶盖换到的水
//能换到的瓶盖数=7个瓶盖换1瓶水+换瓶盖多出剩余的水+空瓶换到的水
}
}
int main(){
int m,n;
int p;
while(scanf("%d%d",&m,&n)!=EOF){
if(m>n){
p = 0;
}
else if(m==n){
p = 1;
}
else{
p = ps(n/m,n/m,0); //初始空瓶和瓶盖的水瓶数都为n/m
}
printf("%d\n",n/m+p); //买到的水+换到的水
}
}