解题思路:

每次换购的瓶子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分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

li bin 7年前 回复TA
666