题目:
B DEF A + — + ——— = 10 C GHI
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
答案:29
分析:
这道题没什么好说的,全排列;但有个坑一不注意就会出错,我们从上面第一个例子可以看出8/3后是小数,952/714后也是小数,但将他俩通分后却是个整数,最终结果也是10
代码:
#include<iostream>
#include<algorithm>
using namespace std;
int arr[] = {1,2,3,4,5,6,7,8,9};
int main(){
int ans = 0;
do{
int a = arr[3]*100+arr[4]*10+arr[5];
int b = arr[6]*100+arr[7]*10+arr[8];
if((arr[1]*b+arr[2]*a)%(arr[2]*b) == 0 && arr[0]+(arr[1]*b+arr[2]*a)/(arr[2]*b) == 10){
ans++;
}
}while(next_permutation(arr,arr+9));
cout << ans;
return 0;
}