1. 程式人生 > >鏈家筆試2

鏈家筆試2

tdi all 行數 div 測試數據 允許 main 數據 --

把m升水倒入n個相同的杯子(假設容器足夠大),允許有的容器是空的,共有多少種不同的倒法?(用k表示)5 1 1 和1 5 1 和1 1 5 是同一種倒法

輸入:

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

輸出

  對輸入的每行數據m和n,用一行輸出對應的k

輸入示例:

1

7 3

輸出示例:

8

#include<stdio.h>

//把m升水倒入n個杯子,每個杯子的水不超過MTU。
int try(int m,int n,int MTU)
{
    //printf("%d,%d,%d\n",m,n,MTU);
if(m>n*MTU) return 0; else if(m==0) return 1; if (MTU>m) return try(m,n,m); else{ int i=MTU,all=0; while(i>0){ all += try(m-i,n-1,i); i--; } return all; } } int main(void) { int line;
int m,n,k=0; scanf("%d",&line); while(line>0){ scanf("%d%d",&m,&n); k=try(m,n,m); printf("%d\n",k); line--; } return 0; }

鏈家筆試2