喝汽水问题(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;

}

相关推荐
专注VB编程开发20年20 分钟前
javascript的类,ES6模块写法在VSCODE中智能提示
开发语言·javascript·vscode
智者知已应修善业1 小时前
【51单片机用数码管显示流水灯的种类是按钮控制数码管加一和流水灯】2022-6-14
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
孞㐑¥5 小时前
Linux之Socket 编程 UDP
linux·服务器·c++·经验分享·笔记·网络协议·udp
sealaugh327 小时前
aws(学习笔记第四十八课) appsync-graphql-dynamodb
笔记·学习·aws
黄雪超8 小时前
JVM——函数式语法糖:如何使用Function、Stream来编写函数式程序?
java·开发语言·jvm
ThetaarSofVenice8 小时前
对象的finalization机制Test
java·开发语言·jvm
思则变8 小时前
[Pytest] [Part 2]增加 log功能
开发语言·python·pytest
lijingguang8 小时前
在C#中根据URL下载文件并保存到本地,可以使用以下方法(推荐使用现代异步方式)
开发语言·c#
June bug8 小时前
【软考中级·软件评测师】下午题·面向对象测试之架构考点全析:分层、分布式、微内核与事件驱动
经验分享·分布式·职场和发展·架构·学习方法·测试·软考
¥-oriented9 小时前
【C#中路径相关的概念】
开发语言·c#