#include <bits/stdc++.h>
using namespace std;
int ans = 0; //种类//
void dps(int n, int s, int num) { //当前牌点数,拥有该点数牌数目,拥有手牌数//
if (n == 14 || s == 5)//点数或该点数手牌超过范围,返回,退!退!退!//
return;
else if (num == 13) {//手牌已经有13张了,种类加一,然后退!退!退!//
ans++;
return;
} else {//要么继续添加上一张手牌一样的牌,要么手牌点数加1//
dps(n, s + 1, num + 1);
dps(n + 1, 0, num);
}
}
int main() {
dps(1, 0, 0);
cout << ans;
}
这方法不能叫dps吧,只能说是递归?偷懒懒得想名字了