直接暴力,从1000到9999一个个试
#include<stdio.h>
#include<string.h>
struct op
{
int num,x,y;
}p[110];
int n;
int judge(int x,int y)
{
int a[4],b[4],a1[10],a2[10];
memset(a1,0,sizeof(a1));
memset(a2,0,sizeof(a2));
int m=p[y].num,s1=0,s2=0;
int i;
for(i=0;i<4;i++)
{
a[i]=x%10;
b[i]=m%10;
a1[a[i]]++;
a2[b[i]]++;
x/=10;
m/=10;
if(a[i]==b[i])
s2++;
}
for(i=0;i<10;i++)
{
if(a1[i]<a2[i])
s1+=a1[i];
else s1+=a2[i];
}
if(s1==p[y]......
阅读全文