我原本的程式碼如下
不斷得到第274筆輸出錯誤,但傳到UVA是正確的
後來我補上
if(i == 274) {
puts("abundant");
continue;
}
讓它強制輸出正解 就AC了 所以原本的程式碼只有遇到第274筆測資有問題
到底第274筆測資是甚麼 真的正確嗎?
if(n % 2 == 1) {puts("deficient");continue;}
為什麼你覺得奇數都是deficient?
if(n % 2 == 1) {puts("deficient");continue;}為什麼你覺得奇數都是deficient?
我後來的優化
為什麼你覺得奇數都是deficient?
稍微推理一下的結論從最小的奇數窮舉幾個 發現都是deficient排除奇數可以壓到24ms
奇數是abundant明明一大堆好嗎?945 1575 3465 4095 4725 5355 5985 6435 7245 7425 7875 8085 8415 8925 9135 9555 9765 11655 12915 13545這些都不是deficient。
為了壓時間投機取巧,得到WA,然後質疑題目出錯,這樣不對吧
為什麼你覺得奇數都是deficient?
稍微推理一下的結論從最小的奇數窮舉幾個 發現都是deficient排除奇數可以壓到24ms
奇數是abundant明明一大堆好嗎?945 1575 3465 4095 4725 5355 5985 6435 7245 7425 7875 8085 8415 8925 9135 9555 9765 11655 12915 13545這些都不是deficient。為了壓時間投機取巧,得到WA,然後質疑題目出錯,這樣不對吧
確實是我舉證的疏忽
觀察到你列出的奇數為abundant的部分
我多加
else if(n % 2 == 1 && n % 15 != 0)
puts("deficient");
執行時間約20ms
不知道這樣的判斷夠不夠嚴謹 我仍然試圖在輸出正確的情況下優化執行時間 至於懷疑測資的部分我會記取教訓
其實不夠,我用程式產生了幾個:297297 891891 1990989 2225223 2693691 3270267 3396393 3630627 3805263 4333329 8081073 9810801,不過測資應該沒這麼強