问题描述:
某饮料厂正举办一次促销优惠活动,C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去,但不允许赊账。
请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的n瓶饮料,最后一共能得到多少平饮料。
输入:一个整数n,表示开始购买的饮料数量(0<n<10000)
输出:一个整数,表示实际得到的饮料数
输入样例:
样例输入:
100
样例输出:
149
样例输入:
101
样例输出:
151
#include <stdio.h>
int sheng(int numb){//能换的饮料
int mo = numb%3;
numb-=mo;
return numb/3;
}
int main()
{
//3个换一个饮料
int a =101;
int yinliao=a;//当前剩余的饮料瓶盖
while(true){
if(yinliao>=3){
a+=sheng(yinliao);
yinliao = sheng(yinliao)+yinliao%3;
}else{
break;
}
}
printf("%d",a);
}
当然也能用递归,但是最快速能想到的方法就是这样