中国电信笔试 中国电信秋招 中国电信笔试题 1011
笔试时间:2025年10月11日
往年笔试合集:
第一题:答题闯关(袜子配对)
小明准备整理衣柜里的袜子。这些袜子混在一起,共有n只,每只袜子都有唯一的颜色(用整数表示),只有颜色完全相同的2只袜子才能组成1对,单只袜子无法构成一对。现在小明需要统计:这堆袜子里一共能整理出多少对完整的袜子?
输入描述
第一行输入一个整数n(1 ≤ n ≤ 10),表示袜子的总数量。
接下来输入n个整数,表示袜子的颜色a₁,a₂,…,aₙ(1 ≤ aᵢ ≤ 10)。
输出描述
输出一个整数,表示完整的袜子的对数。
样例输入
6
1 2 3 1 2 3
样例输出
3
参考题解
袜子配对:统计每种颜色出现次数,答案为所有颜色 cnt/2 之和。
C++:
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
if(!(cin >> n)) return 0;
vector<int> cnt(101,0);
for(int i=0;i<n;i++){
int a;
cin >> a;
cnt[a]++;
}
int ans = 0;
for(int v: cnt) ans += v/2;
cout << ans << "\n";
return 0;
}
Java:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] cnt = new int[101];
for(int i = 0; i < n; i++) {
int a = sc.nextInt();
cnt[a]++;
}
int ans = 0;
for(int v : cnt) {
ans += v / 2;
}
System.out.println(ans);
}
}
Python:
n = int(input())
colors = list(map(int, input().split()))
cnt = [0] * 101
for color in colors:
cnt[color] += 1
ans = sum(v // 2 for v in cnt)
print(ans)
第二题:神奇的二位数
我们称一个整数是"神奇的二位数",当且仅当它满足两点:它是一个两位数,并且它是偶数。两位数指10到99之间的整数(包含边界)。偶数指能被2整除的整数。现在给你三个正整数,请你数一数其中有多少个"神奇的二位数"。
输入描述
输入3个整数a₁,a₂,a₃(1 ≤ aᵢ ≤ 200),表示数组中的元素。
输出描述
输出一个整数,表示这三个数中有几个神奇的二位数。
样例输入
8 10 11
样例输出
1
参考题解
解题思路: 判定三个数中有多少在 [10,99] 且为偶数即可。
C++:
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int a,b,c;
if(!(cin>>a>>b>>c)) return 0;
auto ok = [&](int x){
return x>=10 && x<=99 && (x%2==0);
};
cout << (ok(a)+ok(b)+ok(c)) << "\n";
return 0;
}
Java:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int count = 0;
count += isValid(a) ? 1 : 0;
count += isValid(b) ? 1 : 0;
count += isValid(c) ? 1 : 0;
System.out.println(count);
}
private static boolean isValid(int x) {
return x >= 10 && x <= 99 && x % 2 == 0;
}
}
Python:
a, b, c = map(int, input().split())
def is_valid(x):
return 10 <= x <= 99 and x % 2 == 0
count = sum(1 for x in [a, b, c] if is_valid
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2025 春招笔试合集 文章被收录于专栏
2025打怪升级记录,大厂笔试合集 C++, Java, Python等多种语言做法集合指南
查看6道真题和解析