游客 Signup | Login
中文 | En

3540 - 猜算式(蓝桥杯真题)

 看下面的算式:

□□ 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代替,符号与数字之间有一个空格)

Input

Output

Examples

Input


                

Output


                

Solution C++

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
	int p[9]={1,2,3,4,5,6,7,8,9};
	do
	{
		if((p[0]<p[2])&&(p[0]*10+p[1])*(p[2]*10+p[3])==(p[4]*10+p[5])*(p[6]*100+p[7]*10+p[8]))
			cout<<p[0]<<p[1]<<" x "<<p[2]<<p[3]<<" = "<<p[4]<<p[5]<<" x "<<p[6]<<p[7]<<p[8]<<endl;
	}
	while(next_permutation(p,p+9));
	return 0;
}

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题