蓝桥杯牌型种数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Uitachi1/article/details/69659740

法一:暴力for循环

#include <iostream>
using namespace std;
int main()
{
    int a[13];    
    int count;
    for(a[0]=0; a[0]<=4; a[0]++)
    {
        for(a[1]=0; a[1]<=4; a[1]++)
        {
            for(a[2]=0; a[2]<=4; a[2]++)
            {
                for(a[3]=0; a[3]<=4; a[3]++)
                {
                    for(a[4]=0; a[4]<=4; a[4]++)
                    {
                        for(a[5]=0; a[5]<=4; a[5]++)
                        {
                            for(a[6]=0; a[6]<=4; a[6]++)
                            {    
                                for(a[7]=0; a[7]<=4; a[7]++)
                                {
                                    for(a[8]=0; a[8]<=4; a[8]++)
                                    {
                                        for(a[9]=0; a[9]<=4; a[9]++)
                                        {
                                            for(a[10]=0; a[10]<=4; a[10]++)
                                            {
                                                for(a[11]=0; a[11]<=4; a[11]++)
                                                {
                                                    for(a[12]=0; a[12]<=4; a[12]++)
                                                    {
                                                        if(a[0]+a[1]+a[2]+a[3]+a[4]+a[5]+a[6]+a[7]+a[8]+a[9]+a[10]+a[11]+a[12]==13)
                                                        {
                                                            count++;
                                                
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }    
                    }
                }
            }
        }
    }
    cout<<count<<endl;
    return 0;
}
法二:dfs深度为牌的种类数

#include<bits/stdc++.h>  
using namespace std;  
int ans=0;  
  
void dfs(int type,int sum)  
{  
    if(sum>13) return;  
    if(type==13) {  
        if(sum==13) ans++;  
        return;            
    }  
    for(int i=0;i<5;i++) {  
        dfs(type+1,sum+i);  
    }  
}  
   
int main()  
{  
    dfs(0,0);  
    cout<<ans<<endl;  
}  



猜你喜欢

转载自blog.csdn.net/Uitachi1/article/details/69659740