2023 美团笔试题 0819

笔试时间:2023年08月19日 秋招

第一题

题目:小美的外卖订单编号

美团商家的订单发起时,订单编号最开始从 1 开始,后续每发起一个订单,订单编号便在上一订单编号的基础上 +1。为了防止订单号过大,商家还可以设置一个编号上限m,当订单编号超过m时,将又从 1 开始编号。小美想知道,当订单编号上限为m时,第x个订单编号是多少?将有q次询问。

输入描述

第一行输入一个整数q(1<=q<=50000)。接下来q行,每行两个整数m,x。

输出描述

q行,每行一个整数表示答案。

样例输入

4

2 3

5 17

8 2

4 4

样例输出

1

2

2

4

参考题解

如果可以整除,那么直接输出m。否则则是x%m。

C++:

#include <iostream>
using namespace std;

int main() {
    int q;
    cin >> q;
    for (int i = 0; i < q; i++) {
        int m, x;
        cin >> m >> x;
        if (x % m == 0) {
            cout << m << endl;
        } else {
            cout << x % m << endl;
        }
    }
    return 0;
}

Java:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int q = sc.nextInt();
        for (int i = 0; i < q; i++) {
            int m = sc.nextInt();
            int x = sc.nextInt();
            if (x % m == 0) {
                System.out.println(m);
            } else {
                System.out.println(x % m);
            }
        }
    }
}

Python:

q = int(input())

for _ in range(q):
    m,x = map(int, input().split())
    if x % m == 0: print(m)
    else:print(x%m)

第二题

题目:小美的加法

小美有一个长度为n的数组,她想将这个数组进行求和,即 sum=a1+a2+...+an。

小美可以使用一次魔法(也可以不使用),将其中一个加号变成乘号,使得sum最大。

求出最大的sum。

输入描述

第一行输入一个整数n。

第二行输入n个整数表示数组a。

输出描述

输出一个整数表示答案。

样例输入

6

1 1 4 5 1 4

样例输出

27

小美可以将 4 和 5 之间的加号改成乘号。

1 + 1 + 4 * 5 + 1 + 4 = 27

参考题解

枚举最大的删除位置即可。

C++:

#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }

    int res = -1e9;
    for (int i = 0; i < n - 1; i++) {
        res = max(res, -(a[i] + a[i + 1]) + a[i] * a[i + 1]);
    }

    int sum = 0;
    for (int i = 0; i < n; i++) {
        sum += a[i];
    }

    cout << sum + res << 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();
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextInt();
        }

        int res = Integer.M

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2023 秋招笔试题汇总解析 文章被收录于专栏

2023秋招各大笔试题汇总,c++,java,python多种语言分析,解答。

全部评论
第三题java输出不对吧....
1 回复 分享
发布于 2023-08-27 16:42 江苏
第三题java输出不对吧....
点赞 回复 分享
发布于 2023-09-01 11:15 北京
第二题java只能a一半啊
点赞 回复 分享
发布于 2023-09-01 19:06 湖北

相关推荐

jack_miller:杜:你不用我那你就用我的美赞臣
点赞 评论 收藏
分享
点赞 评论 收藏
分享
3 8 评论
分享
牛客网
牛客企业服务