[問題] OJ上遇到的小題目 不知道錯在哪(已解決)

看板C_and_CPP作者 (toby)時間14年前 (2012/02/07 16:47), 編輯推噓5(5021)
留言26則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 問題大概是說 a = 1*1 b = 2*2 ... z = 26*26 然後題目會給英文單字 假設是zzbba 那他的值就是676676441 要你算出這個值 mod 101的結果 http://oj.jzxx.net/problem.php?id=1889 餵入的資料(Input): 預期的正確結果(Expected Output): 餵了蠻多資料的 用計算機按出來都沒錯 錯誤結果(Wrong Output): wa 50% 我有試過假設字串不會太大 直接atoi後再%101 一樣是wa50% 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/BGCB3uoC http://ideone.com/ieztT 補充說明(Supplement): 麻煩大大幫忙了! 話說會不會是我會錯題意了XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.244.160.7

02/07 17:08, , 1F
因為真的字串一不小心就很大了...
02/07 17:08, 1F

02/07 17:08, , 2F
像是四個 z 就是 12 位 int 就放不下了
02/07 17:08, 2F

02/07 17:11, , 3F
改成longlong試看看,這些題目很常會overflow
02/07 17:11, 3F

02/07 17:16, , 4F
請用大數...
02/07 17:16, 4F

02/07 17:17, , 5F
這題完全不用以上的東西...我猜問題在輸入字串真的很長
02/07 17:17, 5F

02/07 17:17, , 6F
冏 我的算法不是atoi欸@@ 我這樣可以算到20000位
02/07 17:17, 6F

02/07 17:18, , 7F
但是我拿你這支程式輸入240個z就卡住了...
02/07 17:18, 7F

02/07 17:20, , 8F
http://ideone.com/HVKzM 這樣的話會有問題嗎XD
02/07 17:20, 8F

02/07 17:21, , 9F
冏 還是50% wa
02/07 17:21, 9F
※ 編輯: tobygameac 來自: 60.244.160.7 (02/07 17:24) ※ 編輯: tobygameac 來自: 60.244.160.7 (02/07 17:29) ※ 編輯: tobygameac 來自: 60.244.160.7 (02/07 17:31)

02/07 17:39, , 10F
......這輸入檔最後一行沒有換行 (/‵Д′)/~ ╧╧
02/07 17:39, 10F

02/07 17:40, , 11F
把這一點考慮進去就過了...= =
02/07 17:40, 11F

02/07 17:44, , 12F
什麼意思 gets會影響到嗎 資質駑鈍XD
02/07 17:44, 12F

02/07 17:45, , 13F
用同餘理論作吧
02/07 17:45, 13F

02/07 17:46, , 14F
不, 單純是我自己的問題XD 你的程式似乎會輸出負值
02/07 17:46, 14F

02/07 17:47, , 15F
用了一堆隨機測資就測出這個問題了...
02/07 17:47, 15F

02/07 17:48, , 16F
(/‵Д′)/~ ╧╧
02/07 17:48, 16F

02/07 17:48, , 17F
我也是XD
02/07 17:48, 17F

02/07 17:49, , 18F
真的欸 asdsddqwdqwdqw -19 .. 看來演算法有問題XD
02/07 17:49, 18F

02/07 17:49, , 19F
天啊你們都寫好短就出來了!!
02/07 17:49, 19F

02/07 17:50, , 20F
未看先猜因overfollow所以變負的
02/07 17:50, 20F

02/07 17:52, , 21F
不是XD
02/07 17:52, 21F

02/07 17:52, , 22F
看起來像是多做了一次不必要的 101 - ans 的樣子..
02/07 17:52, 22F

02/07 17:53, , 23F
唔, 和我的答案比對看起來像是減了101?
02/07 17:53, 23F

02/07 17:54, , 24F
過了!
02/07 17:54, 24F

02/07 17:55, , 25F
if(!cut) ans = 101 - ans;我把這行拉到上面就成功了XD
02/07 17:55, 25F

02/07 17:55, , 26F
感謝各位大大的幫忙
02/07 17:55, 26F
文章代碼(AID): #1FCEK-MX (C_and_CPP)