中国电信笔试 中国电信秋招 0912
笔试时间:2025年9月12日
往年笔试合集:
第一题
对于给定的整数 n,判断它是不是一个两位数。是则输出 YES,否则输出 NO。
输入描述
在一行上输入一个整数 n。
输出描述
输出 YES 或 NO。
样例输入
10
样例输出
YES
参考题解
解题思路:
判断一个整数是否为两位数,即判断是否在 [10, 99] 范围内。两位数是指大于等于10且小于等于99的整数。
C++:
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
if (n >= 10 && n <= 99) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
return 0;
}
Java:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if (n >= 10 && n <= 99) {
System.out.println("YES");
} else {
System.out.println("NO");
}
sc.close();
}
}
Python:
n = int(input())
if n >= 10 and n <= 99:
print("YES")
else:
print("NO")
第二题
小红有三个不同的字母,分别为 'R'(RED)、'G'(GREEN)、'B'(BLUE),但顺序被打乱了。她希望通过交换任意两个字母的位置,将序列恢复为 'R'、'G'、'B' 的顺序。请问最少需要多少次交换?
输入描述
在一行上输入三个字母,这三个字母恰好是 'R'、'G'、'B' 各一个。
输出描述
输出一个整数,表示最少需要多少次交换。
样例输入
R G B
样例输出
0
参考题解
解题思路:
根据当前序列中已经处于正确位置的字母数量来判断:
- 3个字母都在正确位置:不需要交换,次数为0
- 1个字母在正确位置:只需交换1次
- 0个字母在正确位置:这是三元素轮换,需要2次交换
- 不可能出现恰好2个字母在正确位置的情况
C++:
#include <iostream>
#include <string>
using namespace std;
int main() {
string letters[3];
cin >> letters[0] >> letters[1] >> letters[2];
string target[3] = {"R", "G", "B"};
int correctPositions = 0;
for (int i = 0; i < 3; i++) {
if (letters[i] == target[i]) {
correctPositions++;
}
}
if (correctPositions == 3) {
cout << 0 << endl;
} else if (correctPositions == 1) {
cout << 1 << endl;
} else if (correctPositions == 0) {
cout << 2 << endl;
}
return 0;
}
Java:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] letters = new String[3];
letters[0] = sc.next();
letters[1] = sc.next();
letters[2] = sc.next();
String[] target = {"R", "G", "B"};
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2025 春招笔试合集 文章被收录于专栏
2025打怪升级记录,大厂笔试合集 C++, Java, Python等多种语言做法集合指南