凑算式
B DEF
A + --- + ------- = 10
C GHI
(如果显示有问题,可以参见【图1.jpg】)
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
#include<stdio.h>
#include<string.h>
#include<math.h>
int a[13];
bool vis[13];
int ans=0;
void dfs(int num)
{
int i;
if(num==9)
{
int t1=a[3]*100+a[4]*10+a[5];
int t2=a[6]*100+a[7]*10+a[8];
if(a[0]*a[2]*t2+a[1]*t2+t1*a[2]==10*a[2]*t2)
{
ans++;
}
return;
}
for(i=1;i<=9;i++)
{
if(!vis[i])
{
vis[i]=1;
a[num]=i;
dfs(num+1);
vis[i]=0;
//a[num]=0;
}
}
}
int main()
{
memset(vis,0,sizeof(vis));
dfs(0);
printf("%d\n",ans);
}