用java实现一个3*3的矩阵使得矩阵横排竖排对角线的和等于13.规则是:只能用0-9,10个数字,每个数字只能用一次
解决方案 »
- Swing布局请教,涉及GridBagLayout
- java中如何设置Dialog关闭
- 需要一个js的正则!但是他们都不会!我想这里有火龙果就又来了
- ArrayList问题...
- 关于jtextpane & jpanel组件的应用
- 配置问题??
- 打包运行后为何出现:java.lang.NoClassDefFoundError: javax/swing/TransferHandler?
- 如何用java向access数据库写入法文字符?
- 请问有些电子书下载解压后是一些后缀是.001 .002 -.300 .A01 -.A05,怎样看?
- 搭建简单的IOS/Android手机app服务器
- java中参数的传递方式
- ibatis问题高手帮忙!
=================
10个数每个数用一次....只用9个数,根据每行和为13得9数总和为39,故6不可能用到
程序如下,无解
=================
public class matrix {
int i[] = {0,1,2,3,4,5,7,8,9};
int m[] = new int[9];
boolean b[] = {false,false,false,false,false,false,false,false,false};
int x=1;
void getMatrix(){
for(int a1=0;a1<9;a1++){
m[0]=i[a1];
System.out.println("计算进度:" + (a1*10+10) + "%");
for(int a2=0;a2<9;a2++){
m[1]=i[a2];
for(int a3=0;a3<9;a3++){
m[2]=i[a3];
for(int a4=0;a4<9;a4++){
m[3]=i[a4];
for(int a5=0;a5<9;a5++){
m[4]=i[a5];
for(int a6=0;a6<9;a6++){
m[5]=i[a6];
for(int a7=0;a7<9;a7++){
m[6]=i[a7];
for(int a8=0;a8<9;a8++){
m[7]=i[a8];
for(int a9=0;a9<9;a9++){
m[8]=i[a9];
//
for(int j=0;j<9;j++)
b[j]=false;
//
if (b[a1])
b[a1]=true;
else
break;
if (b[a2])
b[a2]=true;
else
break;
if (b[a3])
b[a3]=true;
else
break;
if (b[a4])
b[a4]=true;
else
break;
if (b[a5])
b[a5]=true;
else
break;
if (b[a6])
b[a6]=true;
else
break;
if (b[a7])
b[a7]=true;
else
break;
if (b[a8])
b[a8]=true;
else
break;
if (b[a9])
b[a9]=true;
else
break;
if ((m[0]+m[1]+m[2]==13) && (m[3]+m[4]+m[5]==13) && (m[6]+m[7]+m[8]==13)
&& (m[0]+m[3]+m[6]==13) && (m[1]+m[4]+m[7]==13) && (m[2]+m[5]+m[8]==13)
&& (m[0]+m[4]+m[8]==13) && (m[2]+m[4]+m[6]==13)){
System.out.println("第" + x + "种结果:");
System.out.println(m[0] + " " + m[1] + " " + m[2]);
System.out.println(m[3] + " " + m[4] + " " + m[5]);
System.out.println(m[6] + " " + m[7] + " " + m[8]);
System.out.println("==========================================");
x++;
}
} } } } } } }
}
}
}
public static void main(String args[]){
matrix m = new matrix();
m.getMatrix();
}
}