刚做这道题的时候还是很蒙的,因为不知道如何在允许点数可以相同的情况下,去求不同的情况,但是可以确定的是一般出现排序问题都会使用到dfs,再在参考了网上其他博客的内容后终于知道了应该如何去做这道题了,不得不说这个思路真是绝绝子,学到了
#include<bits/stdc++.h>
int num=0;
int dfs(int cnt,int k){
//cnt表示现如今手里所拿到的牌数
//k表示的是最多的迭代次数,即当每个点数的牌只取一次的时候,我们最多就可以取13次
int i;
if(cnt==13) num++;
if(cnt>=13||k>=13) return 0;
for(i=0;i<=4;i++){
dfs(cnt+i,k+1);
}
}
int main(){
dfs(0,0);
printf("%d\n",num);
return 0;
}