Re: [問題] ACM 10090

看板C_and_CPP作者 (杇瑣)時間13年前 (2012/06/02 19:31), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/1
問題應該是出在你 23 24 行用了整數除法 也就是你的 ceil 和 floor 完全沒有作用 整數除法在正數除以正數時是固定取 floor 負數除以正數時則是固定取 ceiling (先說這應該不是標準定的, 只是常見平台都是這樣) 也就是說你這兩行整數除法除出來的結果已經自動做了 floor 或 ceiling 中的某一個 於是再掛 ceil() 或 floor() 都是沒有用的 要達成你要的方式請轉型成 double 再做除法 也就是改成這樣: t1 = (long long)ceil((double)(-n)*x/n2); t2 = (long long)floor((double)(n)*y/n1); -- ˊ_▂▃▄▂_ˋ. ◣          ▅▅ ▅▅ ι●╮   ./◤_▂▃▄▂_◥ \'▊   HARUHI █████ <■┘   ◤◤◥█◥◥█Δ   ISM    By-gamejye ¢|\   ▌▌ζ(▏●‵◥′●)Ψ ▏           █    ⊿Δ    /|▋ |\ ▎         ハルヒ主義      ▄█ ◥◥|◣ ‵′ ◢/'◢◢S.O.S 世界をいに盛り上げるための宮ハルヒの    -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.28.91 ※ 編輯: LPH66 來自: 140.112.28.91 (06/02 19:32)

06/02 21:22, , 1F
我從來沒注意過這個問題@@
06/02 21:22, 1F

06/02 22:05, , 2F
真的是這樣!! 太感謝了!! 以前都沒注意過這個....
06/02 22:05, 2F

06/02 22:05, , 3F
改成double後答案就對了! 又多學一項了! 謝謝你!!
06/02 22:05, 3F
文章代碼(AID): #1FoVcPOb (C_and_CPP)