解题思路:

每次换购的瓶子a = bottle / 3


每次换购以后剩下的空瓶数为b

b= bottle / 3 + bottle % 3


以上两部进行循环

对a进行累加计数

用b来循环控制,并对b==2时候对累加器再加1




参考代码:

#include<stdio.h>
int bottle_count(int bottle);

int main()
{
      int bottle, exchange_bottle[10],i = 0;
      scanf("%d",&bottle);
      while(bottle != 0)
      {
              exchange_bottle[i++] = bottle_count(bottle);
              scanf("%d",&bottle);
      }

      for(int j = 0 ; j < i  ; j ++)
      {
               printf("%d\n",exchange_bottle[j]);	
      }
      return 0;
}

int bottle_count(int bottle)
{
	int havedrink = 0 , nowdrink;
	while(bottle > 1)
	{
		nowdrink = bottle / 3; //每次可以换购的数量
		bottle = nowdrink + bottle % 3; //喝完后余下的空瓶
		havedrink += nowdrink; //对换购的进行累加
		if(bottle == 2) //如果还剩下两瓶再向店家要一瓶后喝完抵一瓶
		{
			havedrink++;
			break;
		}
	}	
	return  havedrink;
}


 

0.0分

0 人评分

  评论区

666
2017-10-05 17:48:44 | |
  • «
  • 1
  • »