中国电信笔试 中国电信秋招 中国电信笔试题 1011

笔试时间:2025年10月11日

往年笔试合集:

2023春招秋招笔试合集

2024春招秋招笔试合集

第一题:答题闯关(袜子配对)

小明准备整理衣柜里的袜子。这些袜子混在一起,共有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等多种语言做法集合指南

全部评论

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务