凑算式
B DEF
A + --- + ------- = 10
C GHI
(如果显示有问题,可以参见【图1.jpg】)
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
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>
int main()
{
int s=0;
for(int a=1;a<=9;a++)//A
{
for(int b=1;b<=9;b++)//B
{
if(a==b)
continue;
for(int c=1;c<=9;c++)//C
{
if(a==c||b==c)
continue;
for(int d=1;d<=9;d++)//D
{
if(a==d||b==d||c==d)
continue;
for(int e=1;e<=9;e++)//E
{
if(a==e||b==e||c==e||d==e)
continue;
for(int f=1;f<=9;f++)//F
{
if(a==f||b==f||c==f||d==f||e==f)
continue;
for(int g=1;g<=9;g++)//G
{
if(a==g||b==g||c==g||d==g||e==g||f==g)
continue;
for(int h=1;h<=9;h++)//H
{
if(a==h||b==h||c==h||d==h||e==h||f==h||g==h)
continue;
for(int i=1;i<=9;i++)//I
{
if(a==i||b==i||c==i||d==i||e==i||f==i||g==i||h==i)
continue;
if((a*1.0+b*1.0/c+(d*100+e*10+f*1.0)/(g*100+h*10+i*1.0))==10)
s++;
}
}
}
}
}
}
}
}
}
printf("%d",s);
return 0;
}
纯暴力,但第一次做出来的数非常的大,一个是审题不仔细,忘记了去掉两个字母是同一个数的情况,还有就是三位数忘了乘数量级,写成了直接三个数相乘。