網易2017校招內推筆試練習卷編程題2--出專輯

你作爲一名出道的歌手終於要出自己的第一份專輯了,你計劃收錄 n 首歌而且每首歌的長度都是 s 秒,每首歌必須完整地收錄於一張 CD 當中。每張 CD 的容量長度都是 L 秒,而且你至少得保證同一張 CD 內相鄰兩首歌中間至少要隔 1 秒。爲了辟邪,你決定任意一張 CD 內的歌數不能被 13 這個數字整除,那麼請問你出這張專輯至少需要多少張 CD ?

輸入描述:
每組測試用例僅包含一組數據,每組數據第一行爲三個正整數 n, s, L。 保證 n ≤ 100 , s ≤ L ≤ 10000

輸出描述:
輸出一個整數代表你至少需要的 CD 數量。

輸入例子:
7 2 6

輸出例子:
4

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while (scan.hasNext()) {
            int n = scan.nextInt();
            int s = scan.nextInt();
            int L = scan.nextInt();
            System.out.println(printCDnum(n, s, L));
        }
        scan.close();
    }

    private static int printCDnum(int n, int s, int L) {
        int t;//每張CD最多能容納t首歌
        t = (L + 1) / (s + 1);
        if (t > n) {
            t = n;
        }
        if (t % 13 == 0) {//t是13的倍數,減1
            t -= 1;
        }

        int CDnum = (n + t - 1) / t;//專輯數量,向上取整
        //餘數x是13的整數倍,x=t-1,必須才分成2個專輯.
        if ((n % t != 0) && ((n % t) % 13 == 0) && (n % t == t -1)) {
            CDnum++;
        }
        return CDnum;
    }

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章