有一个六位数,它的二倍、三倍、四倍、五倍、六倍还是六位数,并且它们的数字和原来的六位数的数字完全相同只是排列的顺序不一样,求这个六位数.
写的是这道题,结果是142857。
ps.这真的是小学生写的作业吗?
代码如下
public class AAAA {
static int[] fun(int i){
int[] n = new int[7];
n[1]=i%10;//个位数
n[2]=((i-i%10)/10)%10;//十位数
n[3]=((i-i%100)/100)%10;//百位数
n[4]=((i-i%1000)/1000)%10;//千位数
n[5]=((i-i%10000)/10000)%10;
n[6]=((i-i%100000)/100000)%10;
return n;
}
static boolean can(int []a,int []b){
int[] n1=new int[7];
int[] n2=new int[7];
for(int i=1;i<=6;i++){
for(int j=1;j<=6;j++){
if(a[i]==b[j]){
n1[i]=1;
n2[j]=1;
}
}
}
int sum = 0;
int sun = 0;
for(int i=1;i<=6;i++){
sum+=n1[i];
sun+=n2[i];
}
if(sum==6&&sun==6)
return true;
return false;
}
public static void main(String[] args){
for(int i=100000;i<=999999;i++){
if(can(fun(i*2),fun(i))){
if(can(fun(i*3),fun(i))){
if(can(fun(i*4),fun(i))){
if(can(fun(i*5),fun(i))){
if(can(fun(i*6),fun(i))){
System.out.println("结果为"+i);
System.out.println(i*2);
System.out.println(i*3);
System.out.println(i*4);
System.out.println(i*5);
System.out.println(i*6);
break;
}
}
}
}
}
}
}
}