2015年蓝桥杯省赛A组c++第8题(迭代法)

/*
乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,
并且可以一直循环下去(但不允许暂借或赊账)。
请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的n瓶饮料,最后他一共能喝到多少瓶饮料。

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

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

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

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

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。 
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。 
注意: main函数需要返回0 
注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。 
注意: 所有依赖的函数必须明确地在源文件中 #include , 不能通过工程设置而省略常用头文件。 
提交时,注意选择所期望的编译器类型。
*/

#include<cstdio>  
#include<cstring>  
#include<algorithm>  
#include<iostream>  
#include<string>  
#include<vector>  
#include<stack>  
#include<bitset>  
#include<cstdlib>  
#include<cmath>  
#include<set>  
#include<list>  
#include<deque>  
#include<map>  
#include<queue>  
using namespace std;

int main()
{
    int num;
    while(scanf("%d",&num)==1&&num)
    {
        int result=num;
        while(num>2)
        {
            result+=num/3;
            num=num/3+num%3;
        }
        cout<<result;
    }
    return 0;
}

tz@COI HZAU

2018/3/14

原文地址:https://www.cnblogs.com/acm-icpcer/p/8568338.html