B DEF A + --- + ------- = 10 C GHI
这个算式中A – I代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
思路:全排列+枚举+判断
对式子进行化简可以得到如图:
B*GHI+C*DEF=(10-A)*C*GHI
这里注意由于牵涉到了分数,所以需要对其进行变形,在进行变形时千万要注意GHI是一个数,而不是三个数.不能把C*GHI看成CGHI.
参考代码
#include<bits/stdc++.h> using namespace std; int arr[9] = {1,2,3,4,5,6,7,8,9}; // A B C D E F G H I int total; bool solve() { int GHI = arr[6]*100+arr[7]*10+arr[8]; int DEF = arr[3]*100+arr[4]*10+arr[5]; if(arr[1]*GHI+arr[2]*DEF==(10-arr[0])*arr[2]*GHI) { return true; } else { return false; } } int main() { do { if(solve()) { total++; } } while(next_permutation(arr,arr+9)); cout<<total<<endl; return 0; }
答案:29