![]() |
#2
grmmylbs2016-06-22 09:28
![]() public class Crossword { public Crossword (){} public boolean n1(int a[]) { int i=0,j; if(a[4]!=7) return false; if(a[1]!=a[3]) return false; //while(i==0) { for(j=1;j<=4;j++) { if(a[0]==a[j]) return false; } } //while(i==2) { for(j=3;j<=4;j++) { if(a[2]==a[j]) return false; } } if(a[3]==a[4]) return false; return true; } public boolean n2(int a[],int b[]) { int i,j; if(b[5]!=9) return false; for(i=0;i<=4;i++) { for(j=i+1;j<=5;j++) { if(b[i]==b[j]) return false; } } for(i=0;i<=4;i++) { if(b[i]==9) return false; for(j=0;j<=5;j++) if(a[i]==b[j]) return false; } return true; } public static void main(String[] args) { test1 c=new test1(); int m,n; int i,j; int a[]=new int[5]; int b[]=new int[6]; for(i=14287;i<86567;i++) { m=i; for(j=4;j>=0;j--) { a[j]=m%10; m=m/10; } if(c.n1(a)) { n=i*7; if(n<876549) { for(j=5;j>=0;j--) { b[j]=n%10; n=n/10; } if(c.n2(a,b)) { System.out.printf(" %d%d%d%d%d",a[0],a[1],a[2],a[3],a[4]); System.out.println("\n * 7"); System.out.println(" --------"); System.out.println(" "+ b[0]+b[1]+b[2]+b[3]+b[4]+b[5]); System.out.println("\n"); } } } } } } |
题目:现有填字游戏:
SEVEN
* 7
----------
FORTY9
该式表示一个乘法算式,式中SEVEN是一个5位数,FORTY9是一个6位数,相同的字母代表相同的数字,不同的字母代表不同的数字,并且这些字母表示的数字都不等于9。编程,找出所有可能的解(本题共有3组解)。
代码:
public class Crossword {
public Crossword(){}
public boolean n1(int a[]){
int i=0,j;
while(a[4]!=7)
return false;
while(a[1]!=a[3])
return false;
while(i==0){
for(j=i+1;j<=4;j++){
if(a[0]==a[j])
return false;
}
}
while(i==2){
for(j=i+1;j<=4;j++){
if(a[2]==a[j])
return false;
}
}
return true;
}
public boolean n2(int a[],int b[]){
int i,j;
for(i=0;i<=4;i++)
for(j=0;j<=5;j++)
if(a[i]==b[j])
return false;
if(b[5]!=9)
return false;
return true;
}
public static void main(String[] args){
Crossword c=new Crossword();
int m,n;
int i,j;
int a[]=new int[5];
int b[]=new int[6];
for(i=14287;i<86567;i++){
m=i;
for(j=4;j>=0;j--){
a[j]=m%10;
m=m/10;
}
if(c.n1(a)){
n=m*7;
if(n<876549){
for(j=5;j>=0;j--){
b[j]=n%10;
n=n/10;
}
if(c.n2(a,b)){
System.out.printf(" %d%d%d%d%d",a[0],a[1],a[2],a[3],a[4]);
System.out.println("\n *7");
System.out.println("-------");
System.out.println(" "+ b[0]+b[1]+b[2]+b[3]+b[4]+b[5]);
}
}
}
}
}
}
请问哪里错了,为什么运行不了。