蓝桥杯 填空题_4

        计算3A2B可以组成多少种排列的问题(如:AAABB, AABBA)是《组合数学》的研究领域。但有些情况下,也可以利用计算机计算速度快的特点通过巧妙的推理来

解决问题。下列的程序计算了mAnB可以组合成多少个不同排列的问题。请完善它。

int f(int m, int n)

{

        if(m==0 || n==0) return 1;

        return _______________________;

}

分析:

         由题目猜想要用到递规算法,,但按其数学公式较难解答,故寻找其结果特征。

N M

0

1

2

3

4

0

1

1

1

1

1

1

1

2

3

4

5

2

1

3

6

10

15

3

1

4

10

20

35

4

1

5

15

35

70

观察表格数据可以自出,N1M1 = N1M0+N0M1N4M4 = N4M3+N3M4……也就是f(m,n) = f(m,n-1)+f(m-11,n);

解:

int f(int m, int n)

{

        if(m==0 || n==0) return 1;

        return f(m, n-1)+f(m-1, n);

}



你可能感兴趣的:(算法)