题目:3个空瓶换1瓶,4个瓶盖换1瓶,请问已知小顾购买n瓶饮料能喝到多少瓶饮料?
输入一行一个整数n(0<=n<=1000000)
输出:一行一个整数表示结果。
一开始看了很多佬的思路,发现本菜根本就看不懂。。。。
于是自己又重新想了想,个人追求代码整洁,结构相似,有种美感。
其实3个空瓶和4个瓶盖运算思路相同,那么就只要思考一个就可以了。
以3瓶初始为例子,一开始喝了(sum)为3瓶,然后手上又3个空瓶3个盖子,用3瓶换一瓶,再以此类推写下去即可。
代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n;//3 4 5
cin >> n;
int sum = n;
int kp = n;//3 1 2
int kg = n;//3 4 1
while (kp / 3 != 0 || kg / 4 != 0)
{
if (kp / 3 != 0)
{
sum+= kp / 3;
kg += kp / 3;
kp = kp/3+kp%3;
}
if (kg / 4 != 0)
{
sum += kg / 4;
kp += kg / 4;
kg = kg / 4 + kg % 4;
}
}
printf("%d", sum);
return 0;
}