原题链接:汽水瓶
解题思路:
每次换购的瓶子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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复