這幾天,我正在處理一些關於ACM-ICPC的問題(雖然我已經畢業了..只是爲了好玩..)。昨天,我幾乎變得瘋了,因爲有一位在線評委總是說我寫的代碼是「錯誤的回答」。最後,經過十多個可怕的10個小時後,我意識到以下聲明是原因。這些陳述之間有什麼區別?
int target = (int)((double)(M * 100)/N) + 1; // RIGHT!!
int target = (int)((double) M/N * 100) + 1; // WRONG!!
我無法確切地知道第一個語句的行爲與第二個語句的行爲不同。因爲我不允許看到法官使用的測試用例,所以我很難理解代碼何時會出錯。有沒有人可以向我解釋?謝謝。
*我使用Java。
M和N的類型是什麼? – Valentin
你是什麼意思,錯誤,你是否得到一個錯誤,或者它給出了一個不同的答案解釋?還有什麼是M和N的數據類型。 – Deepak
@Valentin哦,我錯過了。 M和N的類型很長。 – gwpark