解题思路:这题的难度在于找数学规律。规律可以如下
空瓶数量 喝到汽水数量
1 0
2 1(给老板借一个空瓶换一瓶喝完再把空瓶还给老板,或者要一瓶喝完,三个空瓶换一瓶还给老板)
3 1(当然就只能换一瓶汽水了)
4 2(3换1,喝完有两个空瓶,然后重复两个空瓶的操作)
5 2(3换1,重复三瓶的操作)
6 3(换两瓶喝掉,剩下两个空瓶,重复两瓶的操作)
7 3(换两瓶喝掉,刚好剩下三个空瓶)
.....其实到这规律大家都已经发现了,除1个空瓶外,都是每过两次增加一瓶汽水量,大家可以自己再多验证几次就发现了。
n-1 n-1/2取整
n n/2取整
注意事项:
转变成程序的语言的时候就是一个很简单的操作,因为是多组数据测试,所以肯定用到循环,又因为程序输入0就结束,所以我们在写循环的时候一定要先判断输入的是否为0,如果是直接跳出循环,如果不是那么就直接输出n/2的整型结果,别记得输出结果以后要换行,不然就会提示格式错误,或者答案错误。
参考代码:
#include<stdio.h>
int main()
{
int n;
do
{
scanf("%d",&n);
if(n==0)
break;
else
printf("%d\n",n/2);
}while(n!=0);
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复