C語言為什麼這樣求組合數有問題

時間 2021-10-14 20:16:29

1樓:匿名使用者

f(m) 溢位了

就算 f(m) 沒溢位, 由於你的變數都宣告是整數,則1/ 極大值等於 0。

2樓:匿名使用者

因為n的階乘是1,m的階乘是一個很大的數,而且n-m是1-20=-19,是一個負數,你帶入階乘函式f,是一次都不會執行的,直接返回1,那麼你的f(n)/f(m)/f(n-m)這個式子就是 1/很大的數/1,最終的得數也就是 1除以一個很大的數,那麼這個數應該是 0.00000000000000幾,非常小,而你使用一個int型資料接收這個非常小的數,當然是取整算作0了

3樓:戚文柏

c=f(n)/f(m)/f(n-m); //f(1)/f(20) = 0; 因為是int型別所以小數忽略. 0/f(1-20) = 0/1 = 0; 即結果等於0; 這

當f(n)中的n小於等於1時,f(n) = 1.

4樓:

m=20,n=1,那你c的表示式可是f(1)/f(20)/f(-19),你確定不是想m=1,n=20麼

5樓:無奈的大狐狸

f(1)除以f(20),得出了一個小數,小數除以(f-19)=1,還是小數,也就是0.***x,你輸出的是%d整形,所以,結果就是0了

6樓:匿名使用者

這個c語言是向下取整的f(n)/f(m)小於1 他就取零了

求組合數的優秀演算法!要c語言或者c 的!不要給我個數學公式!記得要優秀的!照搬公式的不給分

lz的意思是不是有一些數,求全部的組合序列是吧我這裡有個程式你可以先拿去看看 include include define n 23 define resault 28350.2 define tt pow 2,n 8388608void main double sum char s new cha...

C語言的問題,為什麼是,C語言的問題,為什麼是

十進位制的7在ascii碼值表中對應的是bel bell 響鈴符 所以將其作為字元輸出時,進行了響鈴處理 給你一個ascii碼值表 bin dec hex 縮寫 字元 解釋 0000 0000 0 00 nul null 空字元 0000 0001 1 01 soh start of handing...

c語言問題結果為什麼是,c語言問題結果為什麼是0???

4 2.0的結果是個double,它佔用8個位元組,double格式的2.0在記憶體中是這樣存放的 00 00 00 00 00 00 00 40 至於為什麼這樣存放,三言兩語數不清楚,你要是感興趣就搜尋ieee754浮點數規則自己看看 double格式2.0的低位4個位元組全是0,而printf的...