神奇算式-解题报告

标题:神奇算式
由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。
比如:: 210 x 6 = 1260
8 x 473 = 3784
27 x 81 = 2187
都符合要求。

如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。

请填写该数字,通过浏览器提交答案,不要填写多余内容(例如:列出所有算式)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include<iostream>
using namespace std;
int fun(int a,int b,int c);
int main()
{
for(int i=1;i<10;i++)
{
for(int j=100;j<1000;j++)
{
int c=i*j;
if(fun(i,j,c)==1)
{
cout<<i< }
}
}
}
int fun(int a,int b,int c)
{
int num[4],i=0;
while(a!=0)
{
num[i]=a%10;
a=a/10;
i++;
}
while(b!=0)
{
num[i]=b%10;
b=b/10;
i++;
}
for(int j=0;j<4;j++)
{
for(int k=0;k<4;k++)
{
if(j==k)
continue;
for(int l=0;l<4;l++)
{
if(l==j||l==k)
continue;
for(int m=0;m<4;m++)
{
if(j==m||k==m||l==m)
continue;
if((num[j]*1000+num[k]*100+num[l]*10+num[m]) == c)
{
return 1;
}