喝汽水问题(c语言)

喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水,这里用c语言来解释

可以先用列举法来说明,¥20可以买20个汽水,两个空瓶换一瓶就可以获得10个汽水,同理10个空瓶个可以获得五瓶,五个换两个两个换一个,然后用五个的余数加上两个的余数相加,可得39瓶。但是这个是用硬算的方法去得出的。我们要做的是,输入n瓶,就可以得出喝了几瓶。

分析

我认为这题看上去简单,但实际上还是有一定的思考难度的,本体秩序是两个变量,就是喝过的汽水和空瓶,利用钱数先来给定这个空瓶数和喝过的值,因为都是¥1一瓶,所以钱数就等于这些数,然后喝过的数随着每一次的这个兑换,他应该是要等于之前我喝过的数,再加上所有的空瓶子数再是÷2,这题难就难在空瓶数该如何表示空瓶数就应该等于空瓶数÷2,再加上空瓶%2,因为有些情况会存在余

原码

#include <stdio.h>

int main()

{

int money = 0;

int he = 0;

int kong = 0;

while (scanf_s("%d", &money) != EOF)

{

he = money;

kong = money;

while (kong > 1)

{

he = he + kong / 2;

kong = kong / 2 + kong % 2;

}

printf("你可以喝%d瓶", he);

}

return 0;

}

相关推荐
笨拙的老猴子19 分钟前
[特殊字符] Java GC机制详解:G1、ZGC、Shenandoah全面解析与版本演进对比
java·开发语言
水木流年追梦21 分钟前
大模型入门-Reward 奖励模型训练
开发语言·python·算法·leetcode·正则表达式
三流架构师31 分钟前
军队文职资源合集(第三辑)
经验分享
电子云与长程纠缠43 分钟前
UE5制作六边形包裹球体效果
开发语言·python·ue5
枕星而眠43 分钟前
Linux 四大进程/线程同步锁详解:互斥锁、读写锁、条件变量、文件锁
linux·c语言·后端·ubuntu·学习方法
OSwich1 小时前
【 Godot 4 学习笔记】命名规范
笔记·学习·godot
砍材农夫1 小时前
物联网 基于netty构建mqtt协议规范(遗嘱与保留消息)
java·开发语言·物联网·netty
froginwe111 小时前
Python3 迭代器与生成器
开发语言
吃吃今天努力学习了吗1 小时前
【大模型入门学习笔记】常见概念总结
笔记·学习
xiaoshuaishuai81 小时前
C# 签名异常与Gas预估失败调试方案
开发语言·网络·tcp/ip·c#