切換
舊版
前往
大廳
主題

ZeroJudge - e587: 10530 - Guessing Game 解題心得

Not In My Back Yard | 2020-01-03 21:45:35 | 巴幣 0 | 人氣 337

題目連結:


題目大意:
輸入有多組測試資料,每組由好幾筆的猜測與結果組成。每筆猜測與結果佔兩列,第一列是猜的數字、第二列是猜測的結果(可能是「too high」、「too low」或是「right on」。當結果是「right on」時代表該筆的測試資料的結尾)

每組測資代表 Ollie 猜 Stan 心裡想的數字(數字只會是 1 ~ 10 之間的數字)之遊玩過程。請根據給定的猜測以及結果,去判斷 Stan 有沒有偷改心裡想的數字。如果 Stan 一定有改過數字,則輸出「Stan is dishonest」;反之,輸出「Stan may be honest」。



範例輸入:
10
too high
3
too low
4
too high
2
right on
5
too low
7
too high
6
right on
0


範例輸出:
Stan is dishonest
Stan may be honest


解題思維:
定義一開始的上界 = 10 、 下界 = 1。然後根據猜測的數字以及其結果去更新上下界。

如果在更新的過程中發現上界 < 下界或是明明只剩一個可能的數字,且猜測也是猜那個數字,但結果卻不是「right on」等等不合理的狀況,代表 Stan 回答的結果必定有誤。

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

胖胖貓
我沒判斷上下界, 就只有拿最終答案去和之前猜測的數字比對看是否符合要求而已
2020-01-03 23:56:22

相關創作

更多創作