当前位置: 首页 > news >正文

【C语言】喝汽水问题

大家好!今天我们来学习C语言中的喝汽水问题!

目录

1. 题目内容:

2. 思路分析

2.1 方法一

2.2 方法二

2.3 方法三

3. 代码实现

3.1 方法一

3.2 方法二

3.3 方法三


1. 题目内容

喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水?(编程实现)。

2. 思路分析

2.1 方法一

思路:
1. 20元首先可以喝20瓶,此时手中有20个空瓶子。
2. 两个空瓶子可以喝一瓶,喝完之后,空瓶子剩余empty/2两个空瓶子换的喝完后产生的瓶子) + empty%2不够换的瓶子)。
3. 如果瓶子个数超过1个可以继续换,即重复2

2.2 方法二

按照上述喝水和用瓶子换的规则的话,可以发现,其实就是个等差数列:money*2-1

2.3 方法三

因为每两个空瓶可以换一瓶汽水,1瓶汽水1元,最开始给20元。

我们就用钱数money设置一个while循环,当钱数money不等于0时,每买一瓶汽水,就让能喝的汽水total+1,同时money-1。

因为两个空瓶可以换一瓶汽水,所以当total为偶数时,total就再+1即可。

3. 代码实现

3.1 方法一

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>int main()
{int total = 0;int empty = 0;int money = 0;scanf("%d", &money);total += money;empty += money ;while (empty >= 2){total += empty / 2;empty = empty/2 + empty % 2;}printf("可以喝%d瓶汽水\n", total);return 0;
}

3.2 方法二

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>int main()
{int total = 0;int empty = 0;int money = 0;scanf("%d", &money);if (money > 0)total = money * 2 - 1;printf("可以喝%d瓶汽水\n", total);return 0;
}

3.3 方法三

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>int main()
{int total = 0;int money = 0;scanf("%d", &money);while (money != 0){total++;money--;if (total % 2 == 0)total++;}printf("可以喝%d瓶汽水\n", total);return 0;
}

http://www.lryc.cn/news/140795.html

相关文章:

  • 项目进度管理(4-2)关键链法和关键路径法的区别和联系
  • 基于Java+SpringBoot+Vue前后端分离医院后台管理系统设计和实现
  • 二维数组传参
  • AI 绘画Stable Diffusion 研究(十四)SD 图生图+剪映制作人物说话视频
  • ProPlot 基本语法及特点
  • element-template-admin get请求正常 post请求超市问题
  • Promise.all和promise.race的应用场景举例
  • go学习-指针 标识符
  • LeetCode--HOT100题(42)
  • leetcode-49.字母异位词分组-day20
  • YOLOv8教程系列:三、K折交叉验证——让你的每一份标注数据都物尽其用(yolov8目标检测+k折交叉验证法)
  • leetcode算法题--表示数值的字符串
  • Docker安装及Docker构建简易版Hadoop生态
  • 使用Burp Suite进行Web应用渗透测试
  • Github的使用指南
  • mongodb 添加加点 stateStr 停在 STARTUP
  • c语言中编译过程与预处理
  • TP-LINK 路由器设置内网穿透
  • A 题国际旅游网络的大数据分析-详细解析与代码答案(2023 年全国高校数据统计与调查分析挑战赛
  • 《深入理解Java虚拟机》读书笔记: 类加载器
  • 宝塔计划任务读取文件失败
  • Python操作sql,备份数据库
  • Linux线程 --- 生产者消费者模型(C语言)
  • Vue2向Vue3过度核心技术computed计算属性
  • 芯片行业震荡期,数字后端还可以入吗?
  • “精准时空”赋能制造业智能化发展
  • Kotlin协程flow发送时间间隔debounce
  • ServiceManager接收APP的跨进程Binder通信流程分析
  • Git问题:解决“ssh:connect to host github.com port 22: Connection timed out”
  • 在Eclipse中创建javaweb工程