[問題] 算兩數間最大的13倍數

看板C_and_CPP作者 (林佳)時間14年前 (2011/10/11 11:56), 編輯推噓3(3013)
留言16則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 求兩數間最大的13倍數(兩數 前者>後者) output 需介於兩數之間 若無則output -1 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): http://ppt.cc/m6jg 這是一種解法 請問還有別種解法嗎? 用goto 會比較方便嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.135.26.99

10/11 12:03, , 1F
-99999的條件好奇怪
10/11 12:03, 1F

10/11 12:05, , 2F
看要do while或goto都沒差吧
10/11 12:05, 2F

10/11 12:19, , 3F
-99999 是設定要來中止程式用的 忘了說 SOR
10/11 12:19, 3F

10/11 12:26, , 4F
老實說沒幾步沒什麼好optimize的
10/11 12:26, 4F

10/11 12:35, , 5F
沒有所謂的別種解法,只是思路不一樣
10/11 12:35, 5F

10/11 12:36, , 6F
他這個演算法我覺得比較奇怪的地方是第二個A>O是不必要的
10/11 12:36, 6F

10/11 12:36, , 7F
第一個不符合第二個不符合的原因只會是因為A是13的倍數
10/11 12:36, 7F

10/11 12:37, , 8F
如果說要考慮負數的話,他這個演算法也處理不了
10/11 12:37, 8F

10/11 12:52, , 9F
printf("%d",B < (A -= A % 13 ? A % 13 : 13) ? A : -1);
10/11 12:52, 9F

10/11 12:52, , 10F
這個演算法 負數應該可行吧? 不走這個演算法13的倍數
10/11 12:52, 10F

10/11 12:53, , 11F
是不是比較難處理
10/11 12:53, 11F

10/11 13:32, , 12F
抱歉原本的演算法負數是ok的
10/11 13:32, 12F

10/11 13:33, , 13F
用%的話以前書上說%處理負數是machine dependent
10/11 13:33, 13F

10/11 13:48, , 14F
謝謝 p 大,我沒考慮到負數的情況
10/11 13:48, 14F

10/11 19:39, , 15F
現在應該是有規定才對(我記得...)
10/11 19:39, 15F

10/11 19:52, , 16F
就我所知到C++2003的標準%負數都是implementation defined
10/11 19:52, 16F
文章代碼(AID): #1EaxvJmJ (C_and_CPP)