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

代码如下:

方法一:

#include
int main()
{
	int money = 0;

	scanf("%d", &money);

	//买的汽水的数量
	int n = money;

	//空瓶数量
	int m = money;
	
	while (m >= 2)  //每次空瓶数>=2进来
	{
		n = m / 2 + n; //空瓶数每次都/2,然后相加
		m = m / 2 + m % 2; //空瓶数/2还要加上取模的余数,因为最后会剩下单数
	}
	
	printf("%d\n", n);

	return 0;
}

方法二:

#include

int main()
{
	int money = 0;

	scanf("%d", &money);

	int n = money * 2 - 1;//这里原因是因为每瓶其实相当于1/2,所以20元相当于能换40瓶
                          //但是由于最后一瓶不能置换,所以需要-1

	printf("%d\n", n);

	return 0;
}

你可能感兴趣的:(题库,算法,c++,c语言)