2750: 猜算式

时间限制: 1 Sec  内存限制: 128 MB  Special Judge

提交: 22  解决: 1

题目描述

看下面的算式:



□□ x □□ = □□ x □□□



它表示:两个两位数相乘等于一个两位数乘以一个三位数。



如果没有限定条件,这样的例子很多。



但目前的限定是:这9个方块,表示1~9的9个数字,不包含0。

该算式中1至9的每个数字出现且只出现一次!



比如:

46 x 79 = 23 x 158

54 x 69 = 27 x 138

54 x 93 = 27 x 186

.....



请编程,输出所有可能的情况!



注意:左边的两个乘数交换算同一方案,不要重复输出!

输入

输出

提示

乘号用小写字母"x”表示

你  离  开  了  ,  我  的  世  界  里  只  剩  下  雨  。  。  。

#include <stdio.h>
int main()
{
for(int a=1; a<=9; a++)
for(int b=1; b<=9; b++)
for(int c=1; c<=9; c++)
for(int d=1; d<=9; d++)
for(int e=1; e<=9; e++)
for(int f=1; f<=9; f++)
for(int g=1; g<=9; g++)
for(int h=1; h<=9; h++)
for(int i=1; i<=9; i++)
{
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)continue;
else if(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)continue;
if((a*10+b)*(c*10+d)==(e*10+f)*(g*100+h*10+i))printf("%d x %d = %d x %d\n",a*10+b,c*10+d,e*10+f,g*100+h*10+i);
}
return 0;
}

05-28 00:33