作者loveme00835 (最愛朴素妍)
看板C_and_CPP
標題Re: [問題] 我的寫法 跑不出老師的答案
時間Fri Oct 1 00:23:47 2010
: 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)
推 hilorrk:love大 好人超 C_AND_CPP版兩大好人XD 10/01 00:33
※ 編輯: loveme00835 來自: 140.121.197.115 (10/01 00:34)
→ james732:我在高雄唸書 無女友 意者站內信 (喂喂) 10/01 00:35
→ james732:↑這樣的推文應該不會被水桶吧 XDD 10/01 00:36
→ tiyun:那警告一次好了XDD 10/01 00:37
推 VictorTom:哼哼, 有沒有看過被晾在板標的....XD 10/01 00:38
→ loveme00835:@_@ 我第一次看到 tiyun 出現耶!!!! 真是太幸運了~~^^ 10/01 00:40
→ loveme00835:樓上正姐!! (誤 10/01 00:51
→ james732:真的,超正 XDDD 10/01 00:53
推 hilorrk:我戀愛了...>///< 10/01 01:15
→ tiyun:XD 推文不要離題囉 10/01 01:27
→ xatier:遇到 tiyun 了耶!今天該買樂透了! 10/01 07:29
推 ledia:這篇的推文...... (汗) 10/01 10:17
推 povertytrap:謝謝原PO大大 10/01 20:25
推 AmosYang:有下有推 10/01 20:26