UVA 11877-ACM

来源:互联网 发布:python编写一个小程序 编辑:程序博客网 时间:2024/05/03 03:23

喝可乐

题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82974#problem/C
解题思路:除3取商,取余,把每次的商加余累积下来,直到商加余小于等于2,再进行判断,

#include<cstdio>#include<iostream>using namespace std;int main(){    int a;    while(cin>>a&&a!=0)  {    int m=0,n=1,sum=0,x=0;//注意:*这是我最容易忽悠的地方,每次都喜欢在循环外面定义。*      int b[100]={0},c[100]={0};      for(int i=0;i<100;i++)        {            b[i]=a/3;     //取商;             c[i]=a%3;    //取余;            a=b[i]+c[i];//商和余的累积;              ++n;累计次数              if(a==2)  //注意:“最后剩两个瓶子,还可以喝一瓶”                a=b[i]+c[i]+1;            if(a==1)                break;      }       for(int i=0;i<n;i++)       sum+=b[i];   //商的积,也就是最后喝到的可乐数量;       cout<<sum<<endl;  }   return 0;}
0 0