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

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

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語言的問題031032為什麼要這樣寫呢應該是

幻想秘境 0x開頭表示是乙個16進製制數,10進製不需要加任何內容 1 0x31是十六進製制,轉化成十進位制是49,查asc碼表,49是字元 1 0x32應該是50,字元是 2 2 c c 規定,16進製制數必須以 0x開頭。比如 0x1表示乙個16進製制數。而1則表示乙個十進位制。另外如 0xff...

C語言程式問題,我的c語言程式有什麼問題? 10

fun x,y,1 求每一行的最小值放進y裡面 fun x,y,0 求每一行的最大值放進y裡面 伺服器 這個應該是判斷條件有問題,那個判斷形式應該是?前後返回的是判斷條件為真的時候的值,後面返回的是判斷條件不成立的時候的值,你這個寫法根本沒有改變flag的值,因為根本就沒有做賦值的操作。我的c語言程...

這道C語言的答案為什麼是這樣,看一道C語言程式答案,為什麼會這樣?

1 能整除形參x且不是偶數的各整數 是說求 各整數 這個 各整數 滿足兩個特徵 能整除形參x 不是偶數 這兩個特徵寫成 就是 x i 0 i 2 2 這些除數的個數通過形參n返回 是通過形參返回,而不是返回值返回。如果用return就 是函式的返回值。形參是n,兩條語句 n 0 和 n 即為將形參n...