C语言:汽水瓶详解

阅读: 评论:0

C语言:汽水瓶详解

C语言:汽水瓶详解

题目链接:汽水瓶


#include<stdio.h>
int main()
{//多组输入int n = 0;while ((scanf("%d", &n) != EOF)){if (n == 0){return 0;}else {int count = 0;//计数器int dh = 0;//兑换得到的汽水while (((n + 1) / 3) != 0)//(n+1)/3!=0说明还可以兑换{if (n != 2)//不是借了1瓶换的{dh = n / 3;//如果空瓶数n正好是3的倍数,就不用借了//如果空瓶书n差1个是3的倍数,可以借一个n = dh + n % 3;//兑换前剩下的汽水+兑换得到的汽水=新的空瓶数count += dh;dh = 0;}else//最后剩下2个空瓶,借一个换一个,最后还回去空瓶{count++;break;}}printf("%dn", count);}}return 0;
}

该题有一个容易让人误解的地方,就是“借一瓶”这个借一瓶不是什么时候都可以借的。
比如你现在29空瓶,它题目虽说是可以借一空瓶,好像就30个空瓶了,然后你一下子兑换10个。

其实不是这样的。它是要求你先用29个空瓶换9个,然后剩余2+9个空瓶,再进行兑换得到3瓶。
3瓶喝完,剩余2+3个空瓶,再进行兑换得到1瓶。
1瓶喝完,剩余2+1个空瓶,再进行兑换得到1瓶。
1瓶再借1瓶也不够兑换,循环结束。示意图如下:

这个借一瓶进行兑换是发生在最后你剩余2空瓶的情况,
你借1空瓶来凑个3空瓶,然后正好换1个,喝完把空瓶还回去。

其他情况,是不允许借的,这也是这个题目比较坑的地方,容易被绕进去。

本文发布于:2024-01-31 02:40:45,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170664004424756.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:汽水   详解   语言
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23