目录

问题描述

解题方法一

解题思路:

代码实现

解题方法二

解题思路:

代码实现

解题方法三

解题思路:

代码实现

总结



问题描述

喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水?

解题方法一

解题思路:

每次花1元买一瓶,买完后判断是否有两个空瓶,如果有两个空瓶就直接换一瓶汽水。

代码实现

int main()
{int money = 0;scanf("%d", &money);int bottle = 0;while (money > 0){bottle++;money--;if (bottle % 2 == 0)//2空瓶换一瓶汽水bottle++;}printf("%d\n",bottle);return 0;
}

方法一效率较低,需要循环20次。让我们接下来看方法二


解题方法二

解题思路:

1.首先已知钱是20元,一元一瓶汽水,那可以先把20元全换成汽水。

2.把20瓶空瓶汽水换成10瓶汽水,再把十瓶空瓶汽水换成5瓶汽水,直到没有空瓶可以换。最后把所有空瓶汽水加起来就是20元可以喝的汽水瓶数。

代码实现

int main()
{int money = 0;int bottle = 0;int empty = 0;scanf("%d", &money);bottle = money;empty = money;while (empty > 1){bottle += empty / 2;empty = (empty / 2) + (empty % 2);}printf("%d\n",bottle);return 0;
}

此方法对比方法一的运行效率略好一些。


解题方法三

解题思路:

根据题意,我们可以发现空瓶数是一个等差数列问题:

代码实现

int main()
{int money = 0;int bottle = 0;scanf("%d", &money);if (money > 0)bottle = 2 * money - 1;elsebottle = 0;printf("%d\n", bottle);return 0;
}

如果你能用第三种方式实现,恭喜你应该是用来运行效率最高的方式解决了该问题。


总结

每个人实现代码的思路都不相同,希望我的方法能够帮到你。如果有什么问题也欢迎在评论区与我一起交流。

喝汽水问题(使用c语言解决)相关推荐

  1. 浅谈喝汽水问题————能用数学解决为什么要用递归

    犹记得小学年代学奥术就曾经被喝汽水问题支配,没有想到现在这么大了还要面对这道题. 题一: 1元钱一瓶汽水,喝完之后两个空瓶换一瓶汽水. 问:若你有N元钱,你最多能喝多少瓶汽水? 题二: 一个人买汽水, ...

  2. 【C语言刷题】喝汽水问题、上三角矩阵判定以及矩阵相等判定

    目录 一.喝汽水问题 1.循环求解 2.找规律 二.上三角矩阵判定 三.矩阵相等判定 总结 一.喝汽水问题 题目描述:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水(编程实现). ...

  3. C语言实现根据体重计算可以喝汽水的罐数

    C语言实现根据体重计算可以喝汽水的罐数: 一个美国政府的研究实验室得出结论,认为在汽水中常用的人造甜味剂会导致实验室老鼠的死亡.你的一个朋友在拼命的减肥,但是他不能放弃汽水.你的朋友想知道能够喝多少汽 ...

  4. c语言期末考试压轴编程题——猜凶手、猜名词、喝汽水、水仙花数

    目录 C语言大一期末必考压轴编程题 几道C语言初阶学习必考题,尤其最后一道打印水仙花数,C语言期末考试必备大题,不要错过!!! 以下个人思路仅供参考,如有更优算法,欢迎评论! 目录 一.猜凶手 题目: ...

  5. c语言智力题 操作符详解例题 数据存储 指针初阶 水仙花数 杨辉三角 逆序字符串 喝汽水问题 打印图形 猜凶手 使用指针打印数组内容 调整奇数偶数顺序 运动员猜名次

    [题目名称] 下面代码的结果是:a #include <stdio.h> int i; int main() {i--; //sizeof'的返回值是无符号整型if (i > siz ...

  6. c语言汽水瓶换汽水的编程题,c语言:2种方法编程及优化;喝汽水问题

    方法一: 程序: #include int main() { int i=0;//i表示money int j=0;//j表示空瓶子 int sum=0;//sum喝汽水总瓶数 scanf(" ...

  7. C语言——喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水, 给20元,可以多少汽水

    [问题描述]: 喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水, 给20元,可以多少汽水. 编程实现. [解题思路一]: 用数学算的话找规律我们很容易就知道可以喝 2n-1 瓶 [参考代码]: #def ...

  8. C语言通路寻找,用C语言解决迷宫问题设计与寻找通路问题.pdf

    用c语言解决迷宫设计与寻找通路问题 摘 要:本课程设计主要解决设计一个迷宫以及在给出一组入口和出口的情况下,求出一条通路的问题.在课程 设计中,程序设计语言采用VisualC++6.0,数据结构采用顺 ...

  9. C语言解决关于兔子的古典问题的代码

    把做工程过程经常用的一些代码段做个收藏,如下的代码是关于C语言解决关于兔子的古典问题的代码,希望对各位朋友有一些好处. #include "stdio.h" #include &q ...

最新文章

  1. 1380 没有上司的舞会
  2. R语言dplyr包移除dataframe数据行实战(Remove Rows):按照条件移除数据行、按照索引移除数据行、删除包含NA值的所有数据行、删除具体列包含NA值的数据行
  3. CICC《城市大脑建设规范》标准建设启动会在京召开
  4. 古代password
  5. 深度解析mysql登录原理
  6. linux乌班图vi怎么使用,Ubuntu上vi(vim)编辑器使用教程
  7. 南下事业篇——深圳 深圳(回顾)
  8. mvc分页生成静态页,mvc生成静态页
  9. matlab中ga函数用法,matlab遗传算法ga函数
  10. Xcode字体新宠 Monoid
  11. 【面试】一些NLP的面试问题
  12. linux ssh 双机互信
  13. 从事IT行业的应该如何学习最高效的休息方式 1
  14. 图像算术编码 matlab,实验二:算术编码及MATLAB实现.doc
  15. 《SEM长尾搜索营销策略解密》一一1.2 用最低的价格获取转化
  16. 如何破解好友QQ空间加密.查看最新日志
  17. FreeIPA 4.7.0 服务端 部署
  18. SpatialTE:从空间转录组数据集分析转座因子表达的工具
  19. 计算机学校班干部竞选演讲稿,精选:2019学校班干部个人竞选演讲稿范文五篇...
  20. mysql卡库,Lemon谐音歌词_米津玄师Lemon的日语中文唱法音译

热门文章

  1. 学了python可以做什么兼职,学python真的能做兼职吗
  2. 穿多少才绅士 露多少才猛男
  3. php 反序列化后面有省略号,ant Table td 溢出隐藏(省略号)
  4. H5实现微信SDK二维码扫描
  5. DataWriter和DataReader的Listener多种定义方式
  6. 众筹网站项目第一天之项目环境搭建和环境测试
  7. Camtasia Studio 2022mac新版强大的屏幕录制软件
  8. 看看别人家的端午礼盒
  9. 地址:https://passport.jd.com/new/login.aspx 需求:模拟京东登陆请求参数
  10. Java调用第三方接口示范