2024oppo春季笔试真题

2024oppo春季笔试真题
玦尘你必须非常努力,才能看起来毫不费劲。
1.小欧新建文件夹
题目描述
小欧在创建文件夹,需要输入文件夹的名字。
比如先创建名字为“abc”的文件夹,那么此时就有一个文件夹名字为“abc”。
如果存在相同名字的文件夹,则在名字后面加上一个正整数,比如“abc”已经存在,那么此时创建的文件夹名字为“abc(1)”。
如果“abc(1)”也存在,那么此时创建的文件夹名字为“abc(2)”。
以此类推。请你帮助小欧创建文件夹。
输入描述
第一行输入一个正整数n,表示创建文件夹的数量。
接下来n行,每行输入一个仅包含小写字母的字符串,表示要创建的文件夹名字,字符串长度不超过10且不为空。
1 <= n <= 10^4
输出描述
输出n行,每行输出一个字符串,表示创建的文件夹名字。
输入示例
5
abc
abc
abc
vfd
dsf
输出示例
abc
abc(1)
abc(2)
vfd
dsf
提示信息
按照输入顺序判断每次创建的文件夹的名字即可。
总时间限制:py/php/js: 5s; java/go: 3s; c/c++: 2s
请尽量使用快读减少输入输出的时间。
参考答案:
1 | import java.util.*; |
2.小欧的等差数列
题目描述
小欧有一个长度为n,首项为a,公差为d的等差数列。即a, a+d, a+2d, … ,a+(n-1)d。
现在,小欧把这n个数看作一个集合,每次操作可以从集合中任意选两个数ai, aj,如果 ai+aj是偶数,那么可以将(ai+aj) / 2
加入到集合中。小欧想知道,经过若干次操作后,集合中最多能有多少个数。
输入描述
一行三个整数n, a, d,表示等差数列的长度,首项和公差。
1 <= n <= 10^5
1 <= a, d <= 10^9
输出描述
输出一个整数,表示集合中最多能有多少个数。
输入示例
5 1 2
输出示例
9
提示信息
刚开始集合为{1,3,5,7,9}。
选1和3 => 2
选3和5 => 4
选5和7 => 6
选7和9 => 8
生成的数如2,4,6,8也可以选,但是可以证明,不管你怎么选,你生成不了超过9的数。
所以最终的集合为{1,2,3,4,5,6,7,8,9}。注意:集合中不能包含重复的数。
时间限制:c/c++:1s; 其他语言:2s.
参考答案:
1 | import java.util.*; |
3.小欧的弹球
题目描述
给定两个互相垂直的墙壁,可视为x轴和y轴的正半轴。小欧目前在(x1,
y1)上面放置了一个弹球,她希望弹球分别经过y轴和x轴各反弹一次后到达(x2,y2),小欧可以自行选择弹球发射的方向,你能帮小欧求出第一次碰到的墙壁时的弹球坐标吗?题目保证输入的数据有解。
提示1:当球碰到墙壁时,它将和法线对称的方向弹出。如果不了解的,可以去看看光的反射原理。这个题目可以理解为光以一定的入射角照射到一个光滑的镜面上.
输入描述
四个正整数x1, y1, x2, y2,分别代表弹球的起始点和目标点。
1 <= x1, x2, y1, y2 <= 10^9
输出描述
两个浮点数,分别代表第一次碰到墙壁的横坐标和纵坐标。
提示2:结果保留两位小数,如果你的结果为整数,也需要保留两位小数。
输入示例
1 1 2 1
输出示例
0.00 0.33
提示信息
提示3:计算出来的坐标应该是(0,1/3),所以应该输出0.00 0.33
总时间限制:c/c++: 1s,其他语言:2s.
参考答案:
1 | import java.io.*; |













