[問題] 陣列中的大數如何做相除??

看板C_and_CPP作者 (蠶哥)時間13年前 (2012/03/19 15:49), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) C語言 問題(Question): 我scanf兩個數字 例如:1000 和 2000 然後要跑出 1000! 和 2000! 因為數字太大 所以我就令兩個陣列 x[10000] y[10000] 再利用除法跟取餘數的 方法來存 每個位置存8Bits 例如123456789 會變成 x[1]=1,x[0]=23456789 就可以用printf的方式呈現大數 可是現在要相除卻面臨到數字串切割點的問題了。 例如 如果今天 x[1]=123,x[0]=45678999 ; y[1]=1234,y[0]=56789990 這樣只要拿x[1]跟y[1]相除 就可以得知值近似0.1 但是今天我是隨機scanf兩個 數,所以就有可能發生這種情況 x[0]=12345678 ; y[1]=1,y[0]=23456780 肉眼看來 很明顯相除就是0.1 但是卻不能拿x[0]對y[1]相除來得到答案,也就是遇到字串被切割時是第幾位數 的問題,想請問各位神人我該怎麼處理現在這個問題。 補充說明(Supplement): 若有發言不慎或是表達的不夠好,還請各位見諒。 謝謝各位撥空幫我解決問題 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.133.200

03/19 17:13, , 1F
就對齊呀...
03/19 17:13, 1F

03/20 00:29, , 2F
對齊?
03/20 00:29, 2F

03/21 19:42, , 3F
一開始先比較大小 如果比較小 就退一位 相當於x乘10
03/21 19:42, 3F

03/21 19:42, , 4F
然後就一直做下去...
03/21 19:42, 4F
文章代碼(AID): #1FPkK0Xy (C_and_CPP)