這是一道遞歸題,
首先,如果借鞋子的人n比還鞋子的人m多的話,一定是不成立的
如果借鞋子n爲0的時候那麼只有一種排序方法,
那麼我們可以根據這個來推出其他人數的情況
ans(m-1,n)意思是還鞋子的一個人站在最前面,之後剩下的哪些人再接着排序
ans(m,n-1) 意思是借鞋子的人站在最後面,剩下的再接着排序。
#include<cstdio>
using namespace std;
int ans(int m, int n){
if (m < n) return 0;
if (n == 0) return 1;
return ans(m-1, n)+ans(m, n-1);
int main() {
int m=0, n=0, s=0;
scanf("%d %d", &m, &n);
s = ans(m, n);
printf("%d\n",s);
return 0;
}