题目描述
这个算式中AI代表19的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
思路
枚举A,B,C…每一种的可能性,并且ABC的值不相同
纯暴力。
答案:29
代码
#include<stdio.h>
bool vis[10];
int main()
{
int sum=0;
for(int a1=1;a1<10;a1++)
{
vis[a1]=true;
for(int a2=1;a2<10;a2++)
{
if(vis[a2]) continue;
vis[a2]=true;
for(int a3=1;a3<10;a3++)
{
if(vis[a3]) continue;
vis[a3]=true;
for(int a4=1;a4<10;a4++)
{
if(vis[a4]) continue;
vis[a4]=true;
for(int a5=1;a5<10;a5++)
{
if(vis[a5]) continue;
vis[a5]=true;
for(int a6=1;a6<10;a6++)
{
if(vis[a6]) continue;
vis[a6]=true;
for(int a7=1;a7<10;a7++)
{
if(vis[a7]) continue;
vis[a7]=true;
for(int a8=1;a8<10;a8++)
{
if(vis[a8]) continue;
vis[a8]=true;
for(int a9=1;a9<10;a9++)
{
if(vis[a9]) continue;
float DEF=(float)(a4*100+a5*10+a6);
float GHI=(float)(a7*100+a8*10+a9);
if(a1+(float)a2/a3+DEF/GHI==10) sum++;
}
vis[a8]=false;
}
vis[a7]=false;
}
vis[a6]=false;
}
vis[a5]=false;
}
vis[a4]=false;
}
vis[a3]=false;
}
vis[a2]=false;
}
vis[a1]=false;
}
printf("%d",sum);
return 0;
}