题目描述
乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊 C 型饮料,凭 3 个瓶盖可以再换一瓶 C 型饮料,并且可以一直循环下去(但不允许暂借或赊账)。
请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的 n 瓶饮料,最后他一共能喝到多少瓶饮料。
输入描述
输入一个整数 n (0<n<1000),表示开始购买的饮料数量。
输出描述
输出一个整数,表示实际得到的饮料数
输入输出样例
示例
输入
100
输出
149
递归问题,将瓶盖换为饮料,当瓶盖 < 3时,返回用瓶盖换取的饮料总数。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,sum=0;
int dfs(int bottle) //bottle为瓶盖 bev为本次换得的饮料的瓶盖 sum为换得的饮料总数
{
int bev=0;
sum+=bottle/3;
bev=bottle/3;
bottle=bev+bottle%3;
if(bottle<3)
return sum;
else
dfs(bottle);
}
scanf("%d",&n);
n=n+dfs(n);
printf("%d",n);
return 0;
}