3级学业水平测试

本文记录了博主参加小图灵3级学业水平测试的体验,详细解析了涉及的四道算法题目:橙汁计划升级版、计数游戏、函数求解和购机攻略。每道题目均提供了算法思路和代码实现,涉及贪心算法、计数方法、递归和二分搜索等技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  今天,我找到了有道小图灵这个官方网站,里面有着非常多的比赛,于是,我决定尝试一番,第一级和第二季测试太简单了,连算法都没有考到,于是我重新考了一次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;
} 

  然后来看看第二题“

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙星尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值