凑算式
B DEF
A + — + ——- = 10
C GHI
(如果显示有问题,可以参见【图1.jpg】)
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
暴力上代码:
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
double a[10]={1,2,3,4,5,6,7,8,9};
int ans=0;
for(int i=0;i<9;i++)
{
for(int j=0;j<9;j++)
{
if(j==i)continue;
for(int k=0;k<9;k++)
{
if(k==i||k==j)continue;
for(int l=0;l<9;l++)
{
if(l==i||l==j||l==k)continue;
for(int m=0;m<9;m++)
{
if(m==i||m==j||m==k||m==l)continue;
for(int n=0;n<9;n++)
{
if(n==i||n==j||n==k||n==l||n==m)continue;
for(int o=0;o<9;o++)
{
if(o==i||o==j||o==k||o==l||o==m||o==n)continue;
for(int p=0;p<9;p++)
{
if(p==i||p==j||p==k||p==l||p==m||p==n||p==o)continue;
for(int q=0;q<9;q++)
{
if(q==i||q==j||q==k||q==l||q==m||q==n||q==o||q==p)continue;
if(a[i]+a[j]/a[k]+(a[l]*100+a[m]*10+a[n])/(a[o]*100+a[p]*10+a[q])==10)ans++;
}
}
}
}
}
}
}
}
}
cout<<ans<<endl;
return 0;
}
对没错!就这么暴力。
答案得29