🔥 9.23 华为笔试面经 - 编程题 & 题解

alt

题目类型: 3 道编程题

考试时间: 2023-09-23 (两小时)

T1 分销粮食

粮食公司从农场收购了n吨粮食,现在需要平均分配给分销商进行销售(除不尽向下取整)。分销商数量若下,请计算分销商获得的粮食数量有几种可能。

输入

n: 粮食总量,0 < n <= 4294967295

输出

m:分销商获得的粮食数有几种可能

样例1

输入: 
5

输出:
3
分销商数量 1 2 3 4 5 6 7 ...
获得的粮食数量 5 2 1 1 1 0 0 ...

总共5吨粮食,分销商获得的粮食数量可能为5/2/1吨,3种。

样例2

输入: 
7

输出:
4
分销商数量 1 2 3 4 5 6 7 8 ...
获得的粮食数量 7 3 2 1 1 1 1 0 ...

总共7吨粮食,分销商获得的粮食数量可能为7/3/2/1吨,4种。

题解

模拟

获得的粮食数量 avg = 粮食总量 n / 分销商 k

枚举分销商数量计算出所有的获得的粮食数量的情况数,即为答案。

分类讨论:

  1. avg == n / k && avg != k 此时 获得的粮食数量 有 avg 和 k 两种可能。
  2. avg == n / k && avg == k 此时只能算一种情况。
import java.util.Scanner;

// P1
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        long n = in.nextLong();
        long cnt = 0, k = 1;

        while (true) {
            long avg = n / k;
            // 必须这样优化,不然 ac 不了
            if (avg > k) {
                cnt += 2;
            } else {
                break;
            }
            k++;
        }

        if (k == n / k) cnt++;
        System.out.println(cnt);
    }
}

T2 糖果迷宫

小华和小为在一个两行m列的糖果迷官里,迷官的每位置上都有对立的糖果数目a[i][j],他们只能向右或者向下移动。

小华和小为都将从迷宫左上方a[0][0] 位置出发,向有下角a[1][m-1]走,每到一个位置都将吃掉这个位置上的糖果。

假设小华先走,他走完后会吃掉路过的糖果,然后小为才开始走,被小华吃掉的糖果,小为就不能再吃了。

小华希望小为吃掉最少的糖果总数,然后小为也希望在小华走完后自己能吃掉更多的糖果总数。

请你帮忙计算小为最多可以吃掉多少糖果。

输入

第一行包含一个整教m(1<=m<=100000),标识迷宫的宽度。

接下来包含两行,每行包含m个整教,每一个整数a[i][j] (1 <= a[i][j] <= 10000),代表该位置的糖果教目。

吃掉更多的糖果总数

输出

输出小为最多可以吃到多少糖果。

样例1

输入:
3
1 3 7
3 5 1

输出:
7

解释:
小华吃掉 1,3,5,1 ,小为吃掉 7。

样例2

输入:
1
4
7
输出:
0

题解

枚举

枚举小华所有的吃法情况(在什么位置向下走),求那种情况下小华吃后小为吃到的糖果最少。

import java.util.Scanner;
import java.util.stream.IntStream;

// P2
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int m = in.nextInt();
        int[][] a = new int[2][m];
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < m; j++) {
                a[i][j] = in.nextInt();
            }
        }
        Solution solution = new Solution();
        System.out.println(

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

🔥笔试编程真题宝典💯 文章被收录于专栏

📕分享大厂机试真题深度剖析核心考点,助你速通面试。

全部评论

相关推荐

2025年10月3日中午,在写完定时一年后发给自己的信之后,敲下键盘,写下这篇文字。我把标题的“所有人”加了引号,因为如我们所见,确实有的人顺风顺水,每天过的很开心,或是早早进入大厂,或是年纪轻轻就拿到了高薪offer,或是过着可能我努力十年也不一定实现的生活。但也许,不是每个人的痛苦都能被别人看到的,这个月我经常会哭,被骗6000块钱、手上钱不够导致拖欠房租、生活还要借朋友钱、国庆长假也没有钱去旅游,互联网公司不稳定担心试用期不过(毕竟上段实习就是被裁了,一有点风吹草动就害怕),但这样的我,不是所有人都知道的,居然是有些朋友的羡慕对象。回忆我的七年“长跑”别人都是多年幸福的恋爱长跑,我没有恋...
故事和酒66:让每一颗种子找到合适自己的生长方式,最终绽放出独一无二的花朵,这远比所有人都被迫长成同一棵“参天大树”的世界,更加美好和富有生机。这是社会和环境的问题,而不是我们的问题。然而就是在这样的环境中,楼主依然能突破自我,逆势成长,其中的艰辛可想而知。这一路的苦难终究会化作你成长的养料
你小时候最想从事什么职业
点赞 评论 收藏
分享
想玩飞盘的菠萝蜜在春...:上交✌🏻也拒?
点赞 评论 收藏
分享
评论
13
29
分享

创作者周榜

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