[問題] 大一程式設計作業請教
不好意思,作業應該要自己做的,
但是有筆測資輸出了我怎麼想都想不出來的結果。
https://i.imgur.com/vYuDM5e.png

怕格式亂掉 貼截圖。
題目是要算組合 C n取k。
我一開始是先把分子跟分母分別算出來之後在相除,但這題有限制不能overflow。
於是圖片上的做法我的想法就是假設C5取2,就是1*(5/2*4/1),但是因為只能夠改函式部分
,cin的n,k,m一開始就是int,所以我在函式計算裡面強制把n以及k轉換成double。
問題來了,輸入了一堆測資大部分都正確,結果C 8取3出錯,正確應該是56,但是輸出結果
跑出了55這樣的奇妙結果,百思不得其解這個數字到底怎麼跑出來的,所以想請各位幫我看
哪裡出了問題。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.143.164.143
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1542821346.A.FFC.html
推
11/22 01:40,
7年前
, 1F
11/22 01:40, 1F
→
11/22 01:40,
7年前
, 2F
11/22 01:40, 2F
→
11/22 01:43,
7年前
, 3F
11/22 01:43, 3F
推
11/22 01:45,
7年前
, 4F
11/22 01:45, 4F
→
11/22 01:45,
7年前
, 5F
11/22 01:45, 5F
→
11/22 01:47,
7年前
, 6F
11/22 01:47, 6F
推
11/22 01:47,
7年前
, 7F
11/22 01:47, 7F
→
11/22 01:47,
7年前
, 8F
11/22 01:47, 8F
→
11/22 01:48,
7年前
, 9F
11/22 01:48, 9F
→
11/22 01:48,
7年前
, 10F
11/22 01:48, 10F
瞭解你的意思,所以是浮點數的誤差無關overflow對吧,就我這題來看,誤差累積到一定程
度就會少進位對吧?
→
11/22 01:48,
7年前
, 11F
11/22 01:48, 11F
→
11/22 01:49,
7年前
, 12F
11/22 01:49, 12F
推
11/22 01:49,
7年前
, 13F
11/22 01:49, 13F
→
11/22 01:49,
7年前
, 14F
11/22 01:49, 14F
→
11/22 01:50,
7年前
, 15F
11/22 01:50, 15F
→
11/22 01:50,
7年前
, 16F
11/22 01:50, 16F
好的 我明天試看看
→
11/22 01:50,
7年前
, 17F
11/22 01:50, 17F
→
11/22 01:50,
7年前
, 18F
11/22 01:50, 18F
→
11/22 01:52,
7年前
, 19F
11/22 01:52, 19F
我一開始就是用這個方法,只是我猜教學平台用的測資很大會overflow,所以這方法過不了
。
推
11/22 01:53,
7年前
, 20F
11/22 01:53, 20F
當下感覺離答案很接近就被這個方法綁住了。
→
11/22 01:53,
7年前
, 21F
11/22 01:53, 21F
→
11/22 01:53,
7年前
, 22F
11/22 01:53, 22F
→
11/22 01:55,
7年前
, 23F
11/22 01:55, 23F
→
11/22 01:56,
7年前
, 24F
11/22 01:56, 24F
→
11/22 01:57,
7年前
, 25F
11/22 01:57, 25F
推
11/22 01:57,
7年前
, 26F
11/22 01:57, 26F
→
11/22 01:59,
7年前
, 27F
11/22 01:59, 27F
→
11/22 01:59,
7年前
, 28F
11/22 01:59, 28F
※ 編輯: mpyh12345 (220.143.164.143), 11/22/2018 02:00:04
※ 編輯: mpyh12345 (220.143.164.143), 11/22/2018 02:02:57
→
11/22 02:54,
7年前
, 29F
11/22 02:54, 29F
→
11/22 02:55,
7年前
, 30F
11/22 02:55, 30F
→
11/22 02:55,
7年前
, 31F
11/22 02:55, 31F
→
11/23 02:08,
7年前
, 32F
11/23 02:08, 32F
→
11/23 02:09,
7年前
, 33F
11/23 02:09, 33F
推
06/24 22:39,
7年前
, 34F
06/24 22:39, 34F