nyoj 90 整數劃分 母函式

2022-05-11 10:54:01 字數 861 閱讀 4457

時間限制: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+3,3+2+1,3+1+1+1; 

2+2+2,2+2+1+1,2+1+1+1+1; 

1+1+1+1+1+1。 

輸入第一行是測試資料的數目m(1<=m<=10)。以下每行均包含乙個整數n(1<=n<=10)。

輸出輸出每組測試資料有多少種分法。

樣例輸入

1

6

樣例輸出

11
**

[苗棟棟]原創

//母函式公式為:g(x)=(1+x+x^2+x^3+x^4+......)*(1+x^2+x^4+x^6+......)*(1+x^3+x^6+x^9+......)*......

//a[i]為第一項中的元素,b[i]第二項,陣列中存入的都是係數,每次列舉出所有的係數

//但是大於n的都要捨去

#include#includeint a[12],b[12];

int main()

for(int i=2;i<=n;i++)//共有n-1個多項式

}for(int j=0;j<=n;j++)//將新得到的資料重新存入到a中

}printf("%d\n",a[n]);

} return 0;

}

nyoj 90 整數劃分

整數劃分問題是演算法中的乙個經典命題之一,有關這個問題的講述在講解到遞迴時基本都將涉及。所謂整數劃分,是指把乙個正整數n寫成如下形式 n m1 m2 mi 其中mi為正整數,並且1 mi n 則為n的乙個劃分。如果中的最大值不超過m,即max m1,m2,mi m,則稱它屬於n的乙個m劃分。這裡我們...

NYOJ 90整數劃分

時間限制 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 90 整數劃分

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 輸入第一行是測試資料的數目m 1 m 10 以下每行均包含乙個整數n 1 n 10 輸出輸出每組測試資料有多少種分法。樣例輸入 1 6樣例輸出 11描述 將正整數n表示成一系列正整數之和 n n1 n2 nk,其中n1 n2 nk 1...