1樓:匿名使用者
這道題不理解思路是不能理解函式的 acm的題講清思路要打好多字~加30分懸賞我給你打詳細點
p[m][n] 表示 以n為最大數的m有多少種分法 並遞迴出 p[m][n-1]
例:p[4][4] 表示 4 = 4 1種p[4][3] 4 = 3 + 1 1種
p[4][2] 4 = 2 + p[2][2] (p[2][2] 2 = 2 1種 p[2][1] 2 = 1 + 1 1種 共2種)
p[4][1] 4 = 1 + 1 + 1 +1 1種共5種
#include
int num[121][121]=;
int q(int m,int n)
printf("%d %d %d\n",m,n,num[m][n]);
return num[m][n];
}int main()
}用這個你可以觀察下規律
2樓:
f[m][n]的含義應該是 把m分成n個有多少種分法num[m][n]=q(m,n-1)+q(m-n,n); 這個是重點把m分成n個的方法數等於 把m 分成n-1份的方法數+剩餘數值可分的方法數
這應該是acm入門題目
3樓:吳鐵騎
這是一個利用遞迴求可能的個數
4樓:析田承深
第一題選d
(題解有些長,但很詳細)
題解:首先判斷語句「(--y==x++)
?」的意思是--y是否等於x++【--y指用y的值減1(也就是符號--)再使用,所以這時y=9。x++的指先使用x的值,再用x的值增1(也就是符合++),所以這時x=5
不變,你可能會問x增1了
x不是等於6嗎?你要注意增1運算子是在x後面的,就說明是先使用x的值,再用x的值增1,增1後的值(也就是6)儲存在記憶體裡留著後面使用】。
經過一比較9=5不成立,就選擇冒號(:)後面的語句(++x)【你可能不懂「?」和「:」是什麼意思。
它們是條件運算子,要和在一起用。先判斷「?」前的條件表示式(就如「(--y==x++)
?」)是否成立。如果成立就選擇冒號前的表示式(就如「
--y」),如果不成立就選擇冒號後的表示式(就如「++x」)】。
所以這時「a=(--y==x++)
? -y
:++x」也就相當於「a=++x」
就是a=7
(之前x不是有一個增1的值(6)儲存在記憶體裡留著的嗎,現在就把它用了。++x=7
++x是先增1
後使用所以6增1得7,然後使用。)
「b=y++
; c=x
」的意思是把「y++」的值賦給「b」。y先使用後增1,所以
b=9。「c=x」也就是
c=x=7。
第二題a=10
b=10
c=10
和第一題差不多,也是先使用後增1(減1)或者先增1(減1)後使用的關係。
還有那個條件運算子要注意哦
【先判斷「?」前的條件表示式(就如=(x--=y++)?
」)是否成立。如果成立就選擇冒號前的表示式(就如「
x--」),如果不成立就選擇冒號後的表示式(就如「y++
」)。】
c語言程式填空題求高手指教實在是想不出
5樓:匿名使用者
a[i],a[j],a[j]
取得剩下的陣列第一個的值 a[0]得不出正確的結果
6樓:匿名使用者
a[0]
a[j]
a[j]
c語言 選擇題 求高手幫忙指教
7樓:匿名使用者
在for語句裡面,i的終值要是一個數值(也可以是一個數值表示式或數值變數),而a的答案裡i人終值是一個邏輯表示式,這樣是不正確的。
8樓:
a的話n%3 如果等於0就跳出迴圈了
而c不會啊
9樓:亦愛天
a中for(n=100;(n%3)&&n<=200;n++),只能迴圈到102。
求C語言高手指點,求C語言高手指點
a就是a 0 可以看作是個陣列名,它的元素是int,而不是int,a i 就是 a 0 i 所以i的最大範圍是整個陣列的長度,而不是列數 你定義p指標是一維陣列,所以p的內容應該是1,2,3 但是你輸出陣列內容時做了個6次的迴圈,指標超出了一維陣列最後一個定義的內容後,只能順序向後移動輸出,而a陣列...
c語言的題,求高手解答,求高手解答一下C語言題
同學,你好,你的程式中有錯誤 程式的前面幫你修改了一下,但是在 p1 w 處,不知道你是怎麼抄的沒有一個w的變數 修改正確後在發來 吧 include include void fun char int m int main c語言的題,求高手解答 結果應該是721 先看main函式,i 1時,i ...
請C語言高手指教,C語言高手請指教。。2個renturn 是什麼意思 有什麼作用
整數轉變為2進位制,從高位往低位比,如 1和2比較 0000000000000001 10000000000000010 2從左到右比,顯然2比1大 實數也是轉變成2進位制,但是從後1 4的地方比,比完了在比前3 4的.如1.2與11.0比較 000000000000000000001100 000...