今天,我找到了有道小图灵这个官方网站,里面有着非常多的比赛,于是,我决定尝试一番,第一级和第二季测试太简单了,连算法都没有考到,于是我重新考了一次3级学业水平测试,只花了一个小时四十分钟(总时间2小时),满分就到手了。
今天,我来做一个总结,从第一题开始“橙汁计划升级版”。
题目名称:橙汁计划升级版
时间限制:1000ms内存限制:256MB提交通过率:37%
题目描述
小图灵家门口的便利店正在开展“橙汁计划”活动,每a个橙汁空瓶(不含瓶盖)可以兑换一瓶橙汁,每b个橙汁瓶盖也可以兑换一瓶橙汁。小图灵初始有n瓶未开封的橙汁,在不允许借瓶或借盖的情况下,他一共能喝到多少瓶橙汁?
输入描述
一行,三个整数n, a, b。
输出描述
一行,一个整数,表示小图灵总共能喝到的橙汁瓶数。
样例1
输入复制
5 3 3
输出
11
样例2
输入复制
10 8 11
输出
12
提示
3 <= n, a, b <= 100
首先,我们可以设置三个变量,a1和b1,sum,分别代表着目前有几个盖子,几个空瓶子,目前喝了几瓶橙汁。然后进行取模,之后又将换来的橙汁喝掉,一直循环下去,循环到什么时候呢?就是a1<a&&b1<b的时候,这样子无论如何都不能换橙汁了,我们有三种循环方法for、while、do_while,目前三个方法复杂度都一样。
橙汁计划升级版代码:
#include<iostream>
using namespace std;
int main()
{
int n,a,b,sum=0,a1=0,b1=0;
cin>>n>>a>>b;
sum=n;
a1=n;
b1=n;
for(int i=0;;i++)
{
if(b<=b1)
{
int t=b1/b;
sum+=t;
b1%=b;
b1+=t;
a1+=t;
}
else
{
int t=a1/a;
sum+=t;
a1%=a;
a1+=t;
b1+=t;
}
if(a1<a&&b1<b)
break;
}
cout<<sum<<endl;
return 0;
}
然后来看看第二题“