2025年同济大学计算机考研复试机试真题
本文整理同济大学计算机考研机试真题,并提供详细解析与代码实现,帮助同学们了解保研机试的难度与题型分
二分查找的最大次数
题目描述
这里是一个在排序好的数组 ${A}$(从小到大)中查找整数 ${X}$ 的函数,返回值是查找次数。
int binarySearch(int a[], int n, int x) //数组,数组大小,查找的数据
{
int cnt = 0;
int L = 0, R = n - 1, mid;
while (true)
{
cnt++;
mid = (L + R) / 2;
if (a[mid] == x) return cnt;
else if (x < a[mid]) R = mid;
else L = mid + 1;
}
return cnt; //查找失败
}
现在的问题是,数组 ${a}$ 中某些数据损坏了,我们只知道数组中的一部分数据和数组的大小 ${N}$,我们想知道查找整数 ${X}$ 最大的可能的查找次数,我们假设数组中每个数都不相同,且 ${X}$ 一定出现在原数组中,${a}$ 在被损坏前是已经排好序的。
输入格式
多组测试数据,每组第一行是数组大小 ${N}$(${1<=N<=100000}$),第二行是这个数组的数,这个数组都是正数,${-1}$ 表示这个数据被损坏。第三行是查找的正整数 ${X}$。数据都在 ${32}$ 位以内。
输出格式
${X}$ 的最大查找次数。
输入样例
5
1 2 3 4 5
3
5
1 -1 -1 -1 5
3
5
-1 -1 -1 -1 -1
3
输出样例
1
2
3
字符串对齐
题目描述
给你多个字符串,要求你将所有字符串按照某个字母对齐。
输入格式
第一行输入一个 ${n}$(${n < 100}$)
接下来输入 ${n}$ 行字符串
最后输入一个对齐字母
输出格式
按题意要求输出
输入样例
3
xyz
asdaxais
agcdbegxfgf
x
输出样例
_______xyz
___asdaxais
agcdbegxfgf