题目描述
题目不再过多赘述,只说我怎么想的这一道“脑筋急转弯”,首先我将n,分为实际可以喝和传给下面两部分:
因为题目有这么一句:“请你计算一下,如果小明不浪费瓶盖,尽量地参加活动”,可以从这句话看出假如有100瓶,如果你一次喝了100瓶,你能有:“兑换33瓶+上一次剩下的1瓶”,千万别遗漏这1瓶,通过继承,到11时加上这一瓶变为12,正好可以整数兑换。
我们拿n=26来解释一下:
26:
24+2,24瓶实际被恰(兑换多8瓶),2瓶留给下一波
8+2,9瓶实际被恰(兑换多3瓶),1瓶留给下一波
3+1,3瓶实际被恰(兑换多1瓶),1瓶留给下一波
无法%3(即无法兑换),所以2瓶实际被恰
样例
输入样例:
100
输出样例:
149
算法1
#include<bits/stdc++.h>
using namespace std;
int n;
int main()
{
int sum=0;
int t=0,t1=0,t2=0,x;
cin>>n;
if(n<=2)
{
cout<<n<<endl;
}
else
{
t2=n;
t=t2%3;
t1=t2-t;
while(t1)//t表示剩下,t1表示实际喝,t2表示实际有
{
t=t2%3;
t1=t2-t;
sum=sum+t1;
x=t1/3;
t2=t+x;
t1=t1/3;
}
cout<<sum+t<<endl;
}
return 0;
}