蓝桥杯——凑算式

这个算式中AI代表19的数字,不同的字母代表不同的数字。

比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。

这个算式一共有多少种解法?

#include<iostream>
#include <cstring>
using namespace std;
int nums[10];
bool st[10];
int res=0;
void dfs(int u){
    if(u==9){
        if((nums[0]+(double)nums[1]/nums[2]+(double)(nums[3]*100+nums[4]*10+nums[5])/(nums[6]*100+nums[7]*10+nums[8])==10)){
            res++;
            return;
        }
    }
    for(int i=1;i<=9;i++){
        if(!st[i]){
            st[i]=true;
            nums[u]=i;
            dfs(u+1);
            nums[u]=-1;
            st[i]= false;
        }
    }
}
int main(){
    memset(nums,-1,sizeof(nums));
    dfs(0);
    cout<<res<<endl;
    return 0;
}
posted @ 2020-10-10 19:53  进化の程序猿  阅读(100)  评论(0编辑  收藏  举报