簡單遞歸:poj1664



Description

把M個同樣的蘋果放在N個同樣的盤子裏,允許有的盤子空着不放,問共有多少種不同的分法?(用K表示)5,1,1和1,5,1 是同一種分法。

Input

第一行是測試數據的數目t(0 <= t <= 20)。以下每行均包含二個整數M和N,以空格分開。1<=M,N<=10。

Output

對輸入的每組數據M和N,用一行輸出相應的K。

Sample Input

1
7 3

Sample Output

8

就是將整數M進行不多於N個的整數劃分:
#include <stdio.h>
#include <stdlib.h>


int q(int n,int m){
    if(m==1 || m==0) return 1;
    else if(n<m) return q(n,n);
    else if(n==m) return 1+q(n,n-1);
    else return q(n,m-1)+q(n-m,m);
}


int main(){
    int i,n,M,N;
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d%d",&M,&N);
        printf("%d\n",q(M,N));
    }
    system("pause");
    return 0;
} 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章