通过三层for循环嵌套解决
public static void main(String[] args)
{
int[] a=new int[4];
int[] b=new int[4];
label1:
for(int i=11;;i++)
{
for(int j=i+1;;j++)//将j置为i+1避免相同数字的重复出现
{
a[0]=i/10;//将i和j录入数组a中
a[1]=i%10;
if(i>=100)
break label1;//中断两层循环返回label1位置,并跳过label1之后的循环
if(j>=100)
break;
int m=i*j;
if(m>=10000)
continue label1;//返回label1处继续迭代
if(m<1000)
continue;
a[2]=j/10;
a[3]=j%10;
b[0]=m/1000;
b[1]=m/100-b[0]*10;
b[3]=m%10;
b[2]=(m%100-b[3])/10;
for(int k=0;k<4;k++)
{
for(int z=0;z<4;z++)
{
if(b[k]==a[z])
{
a[z]=-1;
break;
}
}
}
int n=0;
for(int k=0;k<4;k++)
n+=a[k];
if(n==-4)
{
System.out.println("吸血鬼数字:" + m);
}
}
}
}
运行结果