2015-年蓝桥杯C-(A组)赛题-递归-饮料换购

饮料换购


乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去(但不允许暂借或赊账)。


请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的n瓶饮料,最后他一共能喝到多少瓶饮料。


输入:一个整数n,表示开始购买的饮料数量(0<n<10000)
输出:一个整数,表示实际得到的饮料数


例如:
用户输入:
100
程序应该输出:
149


用户输入:
101
程序应该输出:
151




资源约定:
峰值内存消耗 < 256M
CPU消耗  < 1000ms




请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。


所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。


注意: main函数需要返回0
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中 #include <xxx>, 不能通过工程设置而省略常用头文件。


提交时,注意选择所期望的编译器类型。

#include<stdio.h>

int dg(int n){
	if(n<3)return 0; 
	int m;
	m=n/3;//换到的瓶数 
	return m+dg(n-3*m+m);//兑换回来后瓶子总数
} 
int main(){
	int x;
	scanf("%d",&x);	
	printf("%d",dg(x)+x); 
}


#include<stdio.h>
int sum=0;
void dg(int n){
	if(n<3)return; 
	int m;
	m=n/3;//换到的瓶数 
	sum=sum+m;
	dg(n-3*m+m);//兑换回来后瓶子总数
} 
int main(){
	int x;
	scanf("%d",&x);
	dg(x);
	printf("%d",sum+x); 
}



猜你喜欢

转载自blog.csdn.net/qq_34243930/article/details/79720858