蓝桥杯——凑算式
这个算式中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;
}