【C语言】喝汽水问题

这篇具有很好参考价值的文章主要介绍了【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 方法一

【C语言】喝汽水问题,C语言,c语言,开发语言,算法

思路:
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;
}

【C语言】喝汽水问题,C语言,c语言,开发语言,算法

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;
}

【C语言】喝汽水问题,C语言,c语言,开发语言,算法

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;
}

【C语言】喝汽水问题,C语言,c语言,开发语言,算法文章来源地址https://www.toymoban.com/news/detail-673946.html

到了这里,关于【C语言】喝汽水问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 0-1背包问题的多种算法求解(C语言)

            1.问题描述         有一个容量为V的背包,还有n个物体。现在忽略物体实际几何形状,我们认为只要背包的剩余容量大于等于物体体积,那就可以装进背包里。每个物体都有两个属性,即体积w和价值v。 使物品装入背包的价值最大。         2.解决思路与

    2024年02月10日
    浏览(32)
  • 最大子段和问题算法设计(C语言)

    编译环境:Dev-C++ 分别用暴力枚举,优化枚举,递归分治和动态规划的方法解决最大字段和问题。 给定n个整数(可能为负整数)组成的序列a1,a2,…,an,求该序列连续的子序列和的最大值。 如果该子段的所有元素和是负整数时定义其最大子段和为0。 用一个三重循环,i和j从

    2023年04月09日
    浏览(28)
  • 【算法】(BFS/DFS)迷宫路径问题(C语言)

    题目 :现有一迷宫如下图所示,蓝色部分为墙壁,白色部分为通路,入口在左上角(1,1)处,出口在右下角(8,8)处,试找出一条路径以通过该迷宫(路径不能重叠)。 分析 : ① 使用二维数组来存储迷宫,墙用 1 表示,路用 0 表示,如下图所示: 为与题目中的入口坐标

    2024年02月07日
    浏览(76)
  • 贪心算法解决背包问题和动态规划解决0-1背包问题(c语言)

    运行结果如下: 运行结果如下: 总结: 贪心算法: 每一步都做出当时看起来最佳的选择,也就是说,它总是做出局部最优的选择。 贪心算法的设计步骤: 对其作出一个选择后,只剩下一个子问题需要求解。 证明做出贪心选择后,原问题总是存在最优解,即贪心选择总是安

    2024年02月04日
    浏览(50)
  • 动态规划算法解决背包问题,算法分析与C语言代码实现,时间效率解析

    🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨,经典算法的解析✨都在这儿,欢迎大家前往订阅本专题,获取更多详细信息哦🎏🎏🎏 🪔本系列专栏 -  数据结构与算法_勾栏听曲_0 🍻欢迎大家  🏹  点赞👍  评论📨  收藏⭐️ 📌个人主

    2023年04月16日
    浏览(44)
  • 《数据结构、算法与应用C++语言描述》-列车车厢重排问题

    完整可编译运行代码见:Github::Data-Structures-Algorithms-and-Applications/_10Train_carriages_rearrangement/ 一列货运列车有 n 节车厢,每节车厢要停靠在不同的车站。假设 n个车站从 1 到n 编号,而且货运列车按照从n到1的顺序经过车站。车厢的编号与它们要停靠的车站编号相同。为了便于从

    2024年04月10日
    浏览(56)
  • 安卓base64与其他语言base64算法还原出来差异问题???

    今天逆向某app时,发现了最后一步base64编码后后几位不一致。 之前有遇到空格及换行等问题,eg : 在在线工具生成对比后,确实后几位有出入。 回看了代码base64就是调用的标准算法,且也没更换码表。 众所周知,base64是以6位进行便宜,而正常是8个bit位,这样就会缺两位进行

    2024年02月12日
    浏览(55)
  • C语言数据结构——图的最短路径算法解决实例问题

    一、问题描述 W公司在某个地区有6个产品销售点,现根据业务需要打算在其中某个销售点上建立一个中心仓库,负责向其他销售点提供产品。由于运输线路不同,运输费用也不同。假定每天需要向每个销售点运输一次产品,那么应将中心仓库建在哪个销售点上,才能使运输费

    2024年02月08日
    浏览(42)
  • R语言实现SMOTE与SMOGN算法解决不平衡数据的回归问题

      本文介绍基于 R 语言中的 UBL 包,读取 .csv 格式的 Excel 表格文件,实现 SMOTE 算法与 SMOGN 算法,对机器学习、深度学习回归中, 训练数据集不平衡 的情况加以解决的具体方法。   在之前的文章Python实现SMOGN算法解决不平衡数据的回归问题(https://blog.csdn.net/zhebushibiaos

    2024年02月16日
    浏览(31)
  • 数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。

    最短路径的算法有两个, Dijkstra算法 和 Floyd算法 。 Dijkstra算法 解决的是 单源 最短路径问题 。 Floyd算法解决的是 多源 最短路径问题,并且可以处理负权图 。 今天要讲的就是Dijkstra算法。 加: feng--Insist (大写的i),进java交流群讨论互联网+技术。可索要PPT等资料。 其他资料

    2024年02月11日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包