時間限制:
1000 ms | 記憶體限制:
65535 kb
難度:3 描述
把乙個正整數m分成n個正整數的和,有多少種分法?
例:把5分成3個正正數的和,有兩種分法:
1 1 3
1 2 2
輸入
第一行是乙個整數t表示共有t組測試資料(t<=50)
每組測試資料都是兩個正整數m,n,其中(1<=n<=m<=100),分別表示要拆分的正數和拆分的正整數的個數。
輸出輸出拆分的方法的數目。
樣例輸入
25 25 3
樣例輸出
22
分析:把乙個正整數m分成n個正整數的和,可分成兩種情況,一種是這n個整數中有1,一種是沒有1,若有1的話,就是確定肯定有1個數是1(也有可能有多個數是1),那麼問題就變成m-1分成n-1個數的和。若沒有1的話,就是n個數里沒有乙個的數是1,那麼我們可以把這n個數都分出來乙個1,就是這n個數都減1,現在問題就變成了m-n分成n個數的和。整個問題就是這兩種情況的和。
#include #include using namespace std;
int a[101][101];
int main()
return 0;
}
遞迴實現
int fun(int num, int k)
NYOJ 整數劃分(二)
時間限制 1秒 記憶體限制 128兆 題目描述 把乙個正整數m分成n個正整數的和,有多少種分法?例 把5分成3個正正數的和,有兩種分法 1 1 3 1 2 2 輸入第一行是乙個整數t表示共有t組測試資料 t 50 每組測試資料都是兩個正整數m,n,其中 1 n m 100 分別表示要拆分的正數和拆分...
NYOJ 整數劃分
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 將正整數n表示成一系列正整數之和 n n1 n2 nk,其中n1 n2 nk 1,k 1。正整數n的這種表示稱為正整數n的劃分。求正整數n的不 同劃分個數。例如正整數6有如下11種不同的劃分 6 5 1 4 2,4 1 1 3 ...
NYOJ 176 整數劃分(二)
整數劃分 二 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述把乙個正整數m分成n個正整數的和,有多少種分法?例 把5分成3個正正數的和,有兩種分法 1 1 3 1 2 2 輸入第一行是乙個整數t表示共有t組測試資料 t 50 每組測試資料都是兩個正整數m,n,其中 1 n m...