标题:神奇算式
由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。
比如:
210 x 6 = 1260
8 x 473 = 3784
27 x 81 = 2187
都符合要求。
如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。
请填写该数字,通过浏览器提交答案,不要填写多余内容(例如:列出所有算式)。
#include<bits/stdc++.h>
using namespace std;
char s1[4], s2[4];
char s3[10];
int k;
int sum,ans;
int main()
{
for(int i=1; i<=999; i++)
{
for(int j=1; j<=999; j++)
{
sum=i*j;
if(sum>=1000&&sum<=9999&&i<j)
{
sprintf(s3,"%d",sum);
}
for(k=1; k<4; k++)
{
if(s3[k-1]==s3[k])
break;
}
if(k==4)
{
sort(s3,s3+4);
sprintf(s1,"%d",i);//将i转换为字符串
sprintf(s2,"%d",j);//将转换为字符串
strcat(s1,s2);//连接i和j的字符串
sort(s1,s1+4);
if(strcmp(s1,s3)==0)
{
ans++;
printf("%d * %d= %d\n",i,j,sum);
}
}
}
}
cout<<ans<<endl;
}
网友评论