c语言小练习14-喝汽水问题

喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。
方法一:函数

#include<stdio.h>
#include<stdlib.h>

int func(int m)
{
	int n = 1, s;     //n:这次新换的,s:上一次换过之后剩余的
	int sum = m;     //初始化总换取的数量为所给钱数
	while (n != 0)
	{
		n = m / 2;//新换水的瓶数
		s = m % 2;//换汽水后剩余的瓶盖数
		m = n + s;//下次换汽水的瓶盖数
		sum = sum + n;//更新喝了几瓶汽水
	}
	return sum;
}

int main()
{
	int i = func(20);
	printf("%d", i);
	system("pause");
	return 0;
}


方法二:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int i = 0;//i表示钱
	int j = 0;//j表示空瓶子
	int sum = 0;//sum喝汽水总瓶数
	scanf("%d", &i);
	sum = i;
	j = i;
	while (j >= 2)
	{

		sum = sum + j / 2;
		j = j % 2 + j / 2;
	}
	printf("%d\n", sum);
	system("pause");
	return 0;
}


同时,该问题可以扩展到3个空瓶可以换一瓶汽水,4个空瓶可以换一瓶汽水等,是一样的思路,
下面是4个空瓶可以换一瓶汽水的代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>


int main()
{
	int i = 0;//i表示money

	int j = 0;//j表示空瓶子

	int sum = 0;//sum喝汽水总瓶数

	scanf("%d", &i);

	sum = i;

	j = i;

	while (j >= 4)

	{

		sum = sum + j / 4;

		j = j % 4 + j / 4;

	}

	printf("%d\n", sum);
	system("pause");
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值