在控制台上输出
8  1  6   
3  5  7
4  9  2
该怎么写啊 (用数组)
想了好久没有思路,那个大虾给个思路啊
规律就是 横竖斜 相加等于15

解决方案 »

  1.   

       没看懂LZ的意思~~
      
    如果已经输入好的话~~只要用for输出3*3数组就可以了~~
       
      

  2.   

    这是三阶幻方问题。
    参考维基百科:
    http://zh.wikipedia.org/wiki/%E5%B9%BB%E6%96%B9文中思路已经给出,请参考。
      

  3.   

    public class Answer { public static int[][] setNumber(){
    int number[][]=new int[3][3];

    number[1][1]=5;

    number[0][0]=(int)(Math.random()*5);
    number[0][2]=(int)(Math.random()*5);
    number[0][1]=15-number[0][0]-number[0][2];

    number[2][2]=15-number[0][0]-number[1][1];
    number[1][2]=15-number[0][2]-number[2][2];



    number[2][0]=15-number[0][2]-number[1][1];
    number[1][0]=15-number[0][0]-number[2][0];
    number[2][1]=15-number[2][0]-number[2][2];

    return number;
    }
    public void printNumber(int[][] number){

    for(int j=0;j<3;j++){
    for(int i=0;i<3;i++){
    System.out.print(number[j][i]+" ");
    }
    System.out.println();
    }

    }
    public static void main(String[] args) {
    Answer ep = new Answer();
    ep.printNumber(setNumber()); }}方法有点笨,静态赋值。等待高手提出好的方法
      

  4.   

    这个问题很简单的呀,大家思考的方式都太复杂!这个问题直接描述成9个变量(从1~9)相加的问题
    a b c
    d e f
    g h i用九个for(a=1;a<10;a++)
             for(b=1;b<10;b++)
                  ................. 
    {                           
                          
    当  sum(a:i)=45
        a+b+C=15
        d+e+f=15
        g+h+i=15;行
         a+d+g=15
        b+e+h=15
        g+h+i=15;列
        a+e+i=15
        c+e+g=15;斜
    就可以输出结果啦!
    }
        思路很简单吧!^_^!
      

  5.   

    //终于搞出来了!
    //同时也谢谢楼上的兄弟们了public class Nine15 {
        public Nine15() {
        }    public static void main(String[] args) {
            Nine15 nine15 = new Nine15();
            nine15.makeMatrix();
        }
        private boolean test(int[][] m){
            int sums[] = {0,0,0};
            boolean finishes[] = {true, true, true};
            for(int j=0; j<3; j++){
                int sum = 0;
                boolean finished = true;
                for(int i=0; i<3; i++){
                    sum+= m[j][i];
                    sums[i] += m[j][i];
                    if(m[j][i]==0){
                        finished = false;
                        finishes[i] = false;
                    }
                }
                if(sum>15){
                    return false;
                }
                if(finished&&sum!=15){
                    return false;
                }
            }
            if(sums[0]>15||sums[1]>15||sums[2]>15){
                return false;
            }
            if(finishes[0]&&sums[0]<15){
                return false;
            }
            if(finishes[1]&&sums[1]<15){
                return false;
            }
            if(finishes[2]&&sums[2]<15){
                return false;
            }
            int s1 = m[0][0]+m[1][1]+m[2][2];
            if(s1>15){
                return false;
            }
            if(m[0][0]>0&&m[1][1]>0&&m[2][2]>0&&s1<15){
                return false;
            }
            int s2 = m[0][2]+m[1][1]+m[2][0];
            if(s2>15){
                return false;
            }
            if(m[0][2]>0&&m[1][1]>0&&m[2][0]>0&&s2<15){
                return false;
            }
            return true;
        }    private void print(int[][] m){
            for(int j=0; j<3; j++){
                for(int i=0; i<3; i++){
                    System.out.print("\t"+m[j][i]);
                }
                System.out.println();
            }
        }    private void makeMatrix() {
            int m[][] = new int[3][3];
            int p=0;
            int v=9;
            int pv[] = new int[10];
            while(v>0){
                if(p==9){
                    ++v;
                    if(v==10){
                        break;
                    }
                    p=pv[v];
                    int rr = p/3;
                    int cc = p%3;
                    m[rr][cc] = 0;
                    pv[v] = 0;
                    p++;
                    continue;
                }
                int r = p/3;
                int c = p%3;
                if(m[r][c]>0){
                    p++;
                    continue;
                }
                m[r][c] = v;
                if(test(m)){
                    if(v>1){
                        pv[v] = p;
                        v--;
                        p = 0;
                    }else{
                        System.out.println("=======");
                        print(m);
                        m[r][c] = 0;
                        p++;
                    }
                }else{
                    m[r][c] = 0;
                    p++;
                }
            }
        }
    }
      

  6.   

    public class Magic 
    { /** 
    * Method main 


    * @param args 

    */ 
    public static void main(String[] args) 

    // TODO: Add your code here 
    final int SIZE=3; //这里就是你自定义的阶数 
    int mat[][]=new int [SIZE][SIZE]; 
    int i=0,j,k,n; 
    n=SIZE; 
    j=n/2; 
    for(k=1;k<=n*n;k++) 

    mat[i][j]=k; 
    if(k%n==0) 

    i=(i+1)%n; 

    else 

    i=(i-1+n)%n; 
    j=(j+1)%n; 


    for(i=0;i<n;i++) 

    for(j=0;j<n;j++) 
    System.out.print(mat[i][j]+"\t"); 
    System.out.println();