蓝桥杯真题T1255

written by: 东篱下の悠然
题目链接:点我!

题目分析:当当前饮料数小于三时没法换,退出递归;当瓶盖数大于三时 统计:能换来的新瓶盖 + 剩下的瓶盖
其中 “能换来的新瓶盖”为n / 3;递归“当前剩下的瓶盖”:

#include <iostream>
int dg(int n){
	if(n < 3) return 0;
	return n / 3 + dg(n - 3 * (n / 3) + (n / 3));//任意一次兑换完成后所看到的瓶子数
}
int main(){
	int x;
	while(~scanf("%d", &x)){
		printf("%d\n",dg(x) + x);//不要忘记第一次兑换前的,初始状态的饮料也被你喝掉了
	}
	return 0;
}
♥如有谬误还请指正~~蟹蟹♥
发布了9 篇原创文章 · 获赞 3 · 访问量 869

猜你喜欢

转载自blog.csdn.net/wenya13/article/details/104408770