喝汽水问题(C语言实现)

文章讲述了如何通过编程实现一个饮料兑换问题,给出两种方法:一是逐步计算空瓶换汽水的过程,二是发现并利用公式简化计算,最终得到能喝到的汽水总数。
摘要由CSDN通过智能技术生成

题目:

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

题目分析:

首先题目给出了单价和钱数,也就是说我的20元能够买20瓶汽水,而20瓶汽水又对应20个瓶子,2个瓶子对应1瓶汽水,所以我们需要计算瓶数,将瓶数转化为钱数,方便计算。每次用瓶子换汽水都会又有新的瓶子,直到瓶子数量小于2就不能再换了。

代码实现:

#include<stdio.h>
//喝汽水问题  法一
int main()
{
	int money = 0;  //钱数
	int total = 0;  //总汽水数量
	int empty = 0;  //空瓶数量

	printf("输入钱数\n");
	scanf("%d", &money);
	total = money;
	empty = money;
	while (empty > 1)
	{
		total += empty / 2;
		empty = empty / 2 + empty % 2;
	}
	printf("能喝的瓶数为%d\n", total);
	return 0;
}

方法一运行结果:

方法二:

通过观察上面的结果我们不难发现,喝汽水的瓶数总是等于我们的输入钱数*2-1,。公式为:money*2-1。可以总结为以下的代码。

#include<stdio.h>
//法二
int main()
{
	int money = 0;
	int total = 0;
	int empty = 0;
	
	printf("输入钱数\n");
	scanf("%d", &money);
	if (money <= 0)
	{
		total = 0;
	}
	else
	{
		total = money * 2 - 1;
	}
	printf("总共可以喝%d瓶\n", total);
	return 0;
}

运行结果:

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值