Re: [問題] 我的寫法 跑不出老師的答案
: int factor(a,b)
: {
: a=1,b;
: while(a>=1)
: {
: b*=a;
: a--;
: }
: return b;
: }
--
先講介面上的觀點, 數學表示法中 n! 也只有出現一個數字, 你的
factor( a, b )在形式上就怪怪的...當呼叫的人想要取得 10! 的
數值時, 那他應該呼叫 :
1. factor( 1, 10 )
2. factor( 10, 1 )
3. factor( 10, 10 )
這三種版本哪一個呢 ? 首先在呼叫上就會有讓人不知所措的感覺.
--
你本來的程式中的這行 a = 1, b; 實際上做了兩件事 :
1. a = 1;
2. b;
a = 1, 使得迴圈只有執行一次 b *= 1 所以回傳即是第二個引數
的值, 最後的結果是 :
10 / ( 8 * (10 - 8) ) = 10 / 16 = 0
如果把他改成 a = b 從演算法來看, a 從 b 遞減至 1, 累乘結果
存進 b 裡, 第二個引數如果是某個 n 值, 整個結果就會剛好差個
b 倍, 對錯的關鍵在於你有沒有把 b = 1 這行加進去程式碼中(
前提是編譯要過)
--
程式碼 james732 大就有給了, 好好研讀吧, 但是至少請不要按「
右鍵+複製」就收工了事, 每個字慢慢打, 揣摩程式碼撰寫者寫的
時候的想法.
--
◢████ ◢█ ◢██◣ ◢█ ◢███ ◢█ T-ara版怎麼去
████◤ ██ ◢██◣█ ██ ████ ██ s ~> T-ara
█/███ ██ ██ ██ █/█ ◢███ █/█ 歡迎您的光臨
████◤ ██ ██ ██ ██◤ ███◤ ██◤ 恩靜、智妍、孝敏
█/███ ██ █/██◤ ██ █/██ ██ 素妍、居麗、寶藍
████◤ █◤ ◥██◤ █◤ ████◤█◤ ψmakigoto123
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.197.115
※ 編輯: loveme00835 來自: 140.121.197.115 (10/01 00:31)
推
10/01 00:33, , 1F
10/01 00:33, 1F
※ 編輯: loveme00835 來自: 140.121.197.115 (10/01 00:34)
→
10/01 00:35, , 2F
10/01 00:35, 2F
→
10/01 00:36, , 3F
10/01 00:36, 3F
→
10/01 00:37, , 4F
10/01 00:37, 4F
推
10/01 00:38, , 5F
10/01 00:38, 5F
→
10/01 00:40, , 6F
10/01 00:40, 6F
→
10/01 00:47, , 7F
10/01 00:47, 7F
→
10/01 00:51, , 8F
10/01 00:51, 8F
→
10/01 00:53, , 9F
10/01 00:53, 9F
推
10/01 01:15, , 10F
10/01 01:15, 10F
→
10/01 01:27, , 11F
10/01 01:27, 11F
→
10/01 07:29, , 12F
10/01 07:29, 12F
推
10/01 10:17, , 13F
10/01 10:17, 13F
推
10/01 20:25, , 14F
10/01 20:25, 14F
推
10/01 20:26, , 15F
10/01 20:26, 15F
討論串 (同標題文章)