Description
B DEF
A + --- + ------- = 10
C GHI
这个算式中A~I代表0~9的数字,不同的字母代表不同的数字。
比如:
6+8/3+952/714 就是一种解法,
5+3/1+972/486 是另一种解法。
问:这个算式一共有多少种解法?
Input
无
Output
输出能使这个算式成立的解法数量。
HINT
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
代码:
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
int a,b,c,d,e,f,g,h,i;
int j=0;
for(a=0; a<=9; a++)
for(b=0; b<=9; b++)
for(c=1; c<=9; c++)
for(d=0; d<=9; d++)
for(e=0; e<=9; e++)
for(f=0; f<=9; f++)
for(g=0; g<=9; g++)
for(h=0; h<=9; h++)
for(i=0; i<=9; i++)
{
if(g!=0&&h!=0&&i!=0)
{
if(a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g&&a!=h&&a!=i&&b!=c&&b!=d&&b!=e&&b!=f&&b!=g&&b!=h&&b!=i&&c!=d&&c!=e&&c!=f&&c!=g&&c!=h&&c!=i&&d!=e&&d!=f&&d!=g&&d!=h&&d!=i&&e!=f&&e!=g&&e!=h&&e!=i&&f!=g&&f!=h&&f!=i&&g!=h&&g!=i&&h!=i)
{
if(a+b*1.0/c+(d*100+e*10+f*1.0)/(g*100+h*10+i*1.0)==10)
j++;
}
}
}
printf("%d",j);
return 0;
}
注意:此题为蓝桥杯改编题目,原题中不可取0,此题可取因此答案会有所增加,还应注意的是两个整数相除得到的还是整数,所以要把其中一个整数先乘以
1.0 转化成浮点数。