1. 程式人生 > >2018華為優招筆試題

2018華為優招筆試題

今年華為優招筆試總共三道程式設計題

一   、歌唱打分

    青年歌手大賽評委打分,打分規則是去掉一個最高分和一個最低分,然後計算平均分。

輸入描述:輸入資料有多組,每組佔一行,每行第一個數n表示評委人數,然後是n個評委的打分

輸出描述:輸出保留兩位小數,每組輸出一行

示例:

輸入:

3    99    98    97

4    100    99    98    97

輸出:

98.00

98.50

二、猜數字

xAyB猜字遊戲,輸入兩組數字,每組數字包含4個非負整數,同一組中的四個數字互不相同,數字間以空格分隔。

第一組數字為猜數字遊戲的正確答案,第二組數字為玩家所猜的答案,根據以下規則輸出猜數字的結果xAyB。

規則1:如果數字相同,且位置相同,則得到一個A

規則2:如果數字相同,且位置不同,則得到一個B

輸入描述:兩組數字,每組數字包含4個非負整型數字,同一組中的四個數字互不相等,數字以空格分隔

輸出描述:xAyB

示例:

輸入:

1 2 3 4

1 2 5 3

輸出:

2A1B

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s1 = sc.nextLine();
        String s2 = sc.nextLine();
        String[] array1 = s1.split(" ");
        String[] array2 = s2.split(" ");
        int stateA = 0;
        int stateB = 0;
        for (int i = 0; i < array1.length; i++) {
            for (int j = 0; j < array2.length; j++) {
                if (array1[i].equals(array2[j])) {
                    if (i == j) {
                        stateA++;
                    } else {
                        stateB++;
                    }
                }
            }
        }
        System.out.printf("%dA%dB",stateA,stateB);
    }
}

三、獨木橋

    在河上有一座獨木橋,一隻青蛙想沿著獨木橋從河的一側跳到另一側。在橋上有一些石子,青蛙很討厭踩在這些石子上。由於橋的長度和青蛙一次跳過的距離都是正整數,我們可以把獨木橋上青蛙可能到達的點看成數軸上的一串整點:0,1,……,L(其中L是橋的長度)。座標為0的點表示橋的起點,座標為L的點表示橋的終點。青蛙從橋的起點開始,不停的向終點方向跳躍。一次跳躍的距離是S到T之間的任意正整數(包括S,T)。當青蛙跳到或跳過座標為L的點時,就算青蛙已經跳出了獨木橋。

題目給出獨木橋的長度L,青蛙跳躍的距離範圍S,T,橋上石子的位置。你的任務是確定青蛙要想過河,最少需要踩到的石子數。

輸入描述:

輸入檔案river.in的第一行有一個正整數L(1 <= L <= 10^9),表示獨木橋的長度。第二行有三個正整數S,T,M,分別表示青蛙一次跳躍的最小距離,最大距離,及橋上石子的個數,其中1 <= S <= T <= 10,1 <= M <= 100。第三行有M個不同的正整數分別表示這M個石子在數軸上的位置(資料保證橋的起點和終點處沒有石子)。所有相鄰的整數之間用一個空格隔開。

輸出描述:輸出檔案river.out只包括一個整數,表示青蛙過河最少需要踩到的石子數。

示例:

輸入:

10

2 3 5

2 3 5 6 7

輸出:

2