由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。
比如:
210 x 6 = 1260
8 x 473 = 3784
27 x 81 = 2187
都符合要求。
如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。
一个菜鸟写出来的代码。。
#include <stdio.h>
int c(int i,int j)
{
int a[10]={0},b[10]={0},c[10]={0},k;
while(i)
{
a[i%10]++;
i=i/10;
}
while(j)
{
b[j%10]++;
j=j/10;
}
for(k=0;k<=9;k++)
{
if(a[k]!=b[k])
{
return 0;
}
if(a[k]>1&&b[k]>1)
{
return 0;
}
}
return 1;
}
int main()
{
int i,j,n,a[100],z=0,num=0,nn;
for(i=1;i<=9;i++)
{
for(j=100;j<=999;j++)
{
z=0;
n=ij;
nn=i1000+j;
if(c(n,nn))
{
num++;
// printf("%d %d\n",i,j);
}
}
}
for(i=10;i<=40;i++)
{
for(j=40;j<=99;j++)
{
z=0;
n=ij;
nn=i100+j;
if(c(n,nn))
{
num++;
// printf(" %d %d\n",i,j);
}
}
}
printf("%d",num);
return 0;
}