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