凑算式B DEF
A + --- + ------- = 10
C GHI
(如果显示有问题,可以参见【图1.jpg】)
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
答案:29
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <set>
#include <sstream>
#include <climits>
#include <vector>
using namespace std;
bool judge(vector<double> &v){
double res=0;
res+=v[0]+v[1]/v[2]+(v[3]*100+v[4]*10+v[5])/(v[6]*100+v[7]*10+v[8]);
return res==10;
}
int main(){
vector<double> v{1,2,3,4,5,6,7,8,9};
int cnt=0;
do{
if(judge(v))cnt++;
}while(next_permutation(v.begin(),v.end()));
cout<<cnt;
}