歷年云南大學計算機復試機試真題
在線評測:傳送門:pgcode.cn
喝飲料
題目描述
商店里有 n 中飲料,第 i 種飲料有 mi 毫升,價格為 wi。
小明現在手里有 x 元,他想吃盡量多的飲料,于是向你尋求幫助,怎么樣買才能吃的最多。
請注意,每一種飲料都可以只買一部分。
輸入格式
有多組測試數據。
第一行輸入兩個非負整數 x 和 n。
接下來 n 行,每行輸入兩個整數,分別為 mi 和 wi。
所有數據都不大于 1000。
x 和 n 都為-1 時程序結束。
輸出格式
請輸出小明最多能喝到多少毫升的飲料,結果保留三位小數。
輸入樣例
233 6
6 1
23 66
32 23
66 66
1 5
8 5
-1 -1
輸出樣例
136.000
斐波那契數列
題目描述
存在如下數列 1、1、2、4、7、13、24、44、81、149……,現要求該數列第 n 項的值(n 從 0 開始算)。
輸入格式
輸入包含多組測試數據,每組數據包含一個整數 n(0<=n<=70)。
輸出格式
每組輸出只占一行,包含一個整數,表示該數列第 n 項的值。
輸出結果用 64 位數字保存。
輸入樣例
0
1
2
3
4
5
6
7
8
9
輸出樣例
1
1
2
4
7
13
24
44
81
149
這是第幾天?
題目描述
輸入一個年月日的有效日期,輸出這一天是今年第幾天?
輸入格式
如題。
輸出格式
如題。
輸入樣例
2018-01-11
輸出樣例
11
矩陣位置
題目描述
給定一個 3*3 的矩陣如下,請輸出給定值在矩陣中的位置。
1 2 3
4 5 6
7 8 9
輸入格式
多組輸入。
輸入一個 1 到 9 之間的數,請輸出該數在矩陣中是第幾行第幾列。
輸出格式
如題輸出。
輸入樣例
1
2
9
輸出樣例
1 1
1 2
3 3
字符游戲
題目描述
小明又得到了一個字符數組,每個字符都是 a-z 其中的一個,你需要統計出每種字符出現的次數,他的幸運數字還是 5 和 7,所以需要你按出現順序輸出其中個數是 5 和 7 的倍數的字符,并輸出其個數。
輸入格式
第一行包含一個正整數 n(1<=n<=1000),第二行是一個含有 n 個字符的字符數組
輸出格式
按題意輸出
輸入樣例
24
aaaaabbbbbbbbbbccddddddd
輸出樣例
a 5
b 10
d 7
字符值
題目描述
給定一個字符串 S,s1 為 S 的子串,求 s1 的 ASCll 值之和。
輸入格式
輸入:
第一行輸入一行字符串 S(不含空格)。
第二行輸入一個整數 n,代表有 n 次詢問。
接下來 n 行,每行兩個整數 l,r(1<=l<=r<=|S|)。
表示 s1 的開始和結束(下標從 1 開始)。
輸出格式
輸出:
對于每次詢問,輸出一個整數 x 表示答案。
輸入樣例
asdfgKL
3
1 2
2 3
1 7
輸出樣例
212
215
668
堆排序
題目描述
堆排序(英語:Heapsort)是指利用堆這種數據結構所設計的一種排序算法。
堆積是一個近似完全二叉樹的結構,并同時滿足堆積的性質:即子結點的鍵值或索引總是小于(或者大于)它的父節點。
請你實現堆排序。
輸入格式
兩行,第 1 行是整數 n<=50000,表明排序的數據個數,第 2 行是排序的具體數值。
輸出格式
升序排序結果。
輸入樣例
10
4 2 1 5 7 6 9 8 0 3
輸出樣例
0 1 2 3 4 5 6 7 8 9
默契考驗
題目描述
A,B,C 三人面臨著一項考驗。
他們的面前有長度不一的一些木條,A,B,C 每人分別取一根:
*如果組成的木條能組成等邊三角形,則默契度為“完美”;
*如果能組成直角三角形,則默契度為“優秀”;
*否則,默契度為“糟糕”。
現在已知三人所取的木條長度,請判斷他們能在考驗中得到的評價
輸入:
第一行輸入正整數 T(T<=100);
接下來 n 行每行包含 3 個正整數 A,B,C(A,B,C<=100),表示三人取得的木條的長度。
輸出:
默契度為“完美”:輸出“perfect”;
默契度為“優秀”:輸出“good”;
默契度為“糟糕”:輸出“bad”;
輸入格式
如題
輸出格式
如題
輸入樣例
3
3 4 5
5 5 5
1 2 3
輸出樣例
good
perfect
bad
ISBN 號碼識別
題目描述
每一本正式出版的圖書都有一個 ISBN 號碼與之對應,ISBN 碼包括 9 位數字、1 位識別碼和 3 位分隔符,其規定格式如 x-xxx-xxxxx-x,其中符號-就是分隔符(鍵盤上的減號),最后一位是識別碼,例如 0-670-82162-4 就是一個標準的 ISBN 碼。
ISBN 碼的首位數字表示書籍的出版語言,例如 0 代表英語;第一個分隔符-之后的三位數字代表出版社,例如 670 代表維京出版社;第二個分隔符后的五位數字代表該書在該出版社的編號;最后一位為識別碼。
識別碼的計算方法如下:
首位數字乘以 1 加上次位數字乘以 2……以此類推,用所得的結果與 11 求余,所得的余數即為識別碼,如果余數為 10,則識別碼為大寫字母 X。
例如 ISBN 號碼 0-670-82162-4 中的識別碼 4 是這樣得到的:對 067082162 這 9 個數字,從左至右,分別乘以 1,2,…,9 再求和,即 0×1+6×2+……+2×9=158,然后取 158 mod 11 的結果 4 作為識別碼。
你的任務是編寫程序判斷輸入的 ISBN 號碼中識別碼是否正確,如果正確,則僅輸出 Right;如果錯誤,則輸出你認為是正確的 ISBN 號碼。
輸入格式
一個字符序列,表示一本書的 ISBN 號碼(保證輸入符合 ISBN 號碼的格式要求)。
輸出格式
一行,假如輸入的 ISBN 號碼的識別碼正確,那么輸出 Right,否則,按照規定的格式,輸出正確的 ISBN 號碼(包括分隔符-)。
輸入樣例
0-670-82162-4
輸出樣例
Right
消消樂
題目描述
你有很多個 1x1 的方塊堆疊成 n 列,每列有 a[i]個方塊。
現在你想在每一列加入若干個 2*1 的方塊(高為 2,寬為 1),使得所有列的高度(可以為任意值)相同從而消除方塊,且 2x1 方塊不能旋轉。
請問你是否能夠消除所有的方塊。
輸入格式
第一行一個整數 t,表示 t 組數據。
接下來的 2t 行描述測試用例。
測試用例的第一行包含一個整數 n(1≤n≤100),方塊列數,測試用例的第二行包含 n 個整數 a1,a2,…,an (1≤a[i]≤100) 其中 a[i]是第 i 列的方塊數。
輸出格式
對于每個測試用例,如果可以清除全部方塊,則打印答案-“YES”,否則打印“NO” (不帶引號)。
輸入樣例
4
3
1 1 3
4
1 1 2 1
2
11 11
1
100
輸出樣例
YES
NO
YES
YES
怎么借書
題目描述
小明有 n 本書,他的好朋友小紅、小新、小林想向小明借書,若每人只能借一本書,可以有多少種不同的借法?
輸入格式
一個整數 n,代表書的序號為 1、2、……、n
輸出格式
用 A,B,C 分別代表三個好朋友
依次輸出每個人可借的書序號
以及有效的借閱方法總數
輸入樣例
3
輸出樣例
A:1 B:2 C:3
A:1 B:3 C:2
A:2 B:1 C:3
A:2 B:3 C:1
A:3 B:1 C:2
6