凑算式
(不知道为什么放不了图片.)
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
分析:暴力法,但要注意精度问题
#include <iostream>
using namespace std;
int main() {
int a,b,c,d,e,f,g,h,i;
int count = 0;
for(a = 1; a < 10; a++)
for(b = 1; b < 10; b++)
if(a!=b)
for(c = 1; c < 10; c++)
if(a!=c && b!=c)
for(d = 1; d < 10; d++)
if(a!=d && b!=d && c!=d)
for(e = 1; e < 10; e++)
if(a!=e && b!=e && c!=e && d!=e)
for(f = 1; f < 10; f++)
if(a!=f && b!=f && c!=f && d!=f && e!=f)
for(g = 1; g < 10; g++)
if(a!=g && b!=g && c!=g && d!=g && e!=g && f!=g)
for(h = 1; h < 10; h++)
if(a!=h && b!=h && c!=h && d!=h && e!=h && f!=h && g!=h)
for(i = 1; i < 10; i++)
if(a!=i && b!=i && c!=i && d!=i && e!=i && f!=i && g!=i && h!=i){
if((a + (double)b/c + (double)(d*100+e*10+f) / (g*100+h*10+i)) == 10){
count++;
}
}
cout << count;
return 0;
}