原题:
B DEF
A + --- + -------- = 10
C GHI
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
答案:29
思路:有九个不同的未知数,各不相同。最容易想到的方法就是暴力解法,9层遍历,再加一个查重,输出答案
#include<stdio.h>
int main()
{
float a,b,c,d,e,f,g,h,i;
int n=0;
float fun[9];
int cha(float fun[9])
{
int i,j;
for(i=0;i<8;i++)
{
for(j=i+1;j<9;j++)
if(fun[i] == fun[j])
return 0;
}
return 1;
}
for(a=1;a<10;a++)
{
for(b=1;b<10;b++)
{
for(c=1;c<10;c++)
{
for(d=1;d<10;d++)
{
for(e=1;e<10;e++)
{
for(f=1;f<10;f++)
{
for(g=1;g<10;g++)
{
for(h=1;h<10;h++)
{
for(i=1;i<10;i++)
{
fun[0]=a;fun[1]=b;fun[2]=c;fun[3]=d;fun[4]=e;fun[5]=f;fun[6]=g;fun[7]=h;fun[8]=i;
float w= (a+b/c+(d*100+e*10+f)/(g*100+h*10+i));
if(w == 10.0&& cha(fun))
printf(" %.f %.f %.f %.f%.f%.f %.f%.f%.f ``%d\n",a,b,c,d,e,f,g,h,i,++n);
}
}
}
}
}
}
}
}
}
return 0;
}
运行