中国电信笔试 中国电信秋招 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等多种语言做法集合指南