由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。 比如: 6 x 210 = 1260 8 x 473 = 3784 27 x 81 = 2187 都符合要求。 如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,请输出剩余的满足要求的算式且按照第一个因数从小到大排列,第一个因数相等,按照第二个因数从小到大排列
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
char s1[4],s2[4],s3[6];
for(int i=1;i<999;i++)
for(int j=1;j<999;j++)
{
int sum=i*j;
if(sum<=9999 && sum>=1000 && i<j)
{
sprintf(s3,"%d",sum);
sort(s3,s3+4);
int k=1;
for(;k<4;k++)
if(s3[k-1]==s3[k])
break;
if(k==4)
{
sprintf(s1,"%d",i);
sprintf(s2,"%d",j);
strcat(s1,s2);
sort(s1,s1+4);
if(strcmp(s1,s3)==0)
printf("%d*%d=%d\n",i,j,sum);
}
}
}
return 0;
}
转载请注明原文地址: https://ju.6miu.com/read-50331.html