计蒜客--24点游戏

AC代码:

#include<stdio.h>
#include<math.h>
#include<map>
using namespace std;
map<int,int> m;
int a[53];
int sum=0;
void dfs(int s,int x){
    if(s==24){
        sum++;
        return ;
    }
    else if(s>24) return;
    for(int i=x;i<=52;i++){
            dfs(s+a[i],i+1);
    }
} 
int main(){
    int count=1;
    for(int i=1;i<=52;i++){
        if(count>13){
            count=1;
        }
        a[i]=count++;
    }
    dfs(0,1);
    printf("%d",sum);
    return 0;
}
/*#include<stdio.h>
#define N 52
int dig[52];
int count = 0;
void dfs(int sum,int pos){
    if(sum==24){
        count++;
        return;
    }else if(sum>24)return;

    for(int i = pos;i<N;i++){
        dfs(sum+dig[i],i+1);
    }
}
int main(){
    for(int i = 1;i<=N;i++)
        dig[i-1] = (i-1)%13+1;

    //dfs(0,0);
   // printf("%d",count);
    return 0;
} 
*/
原文地址:https://www.cnblogs.com/pythonbigdata/p/8748476.html