bofuji3786
2016-12-09 00:26
采纳率: 100%
浏览 912
已采纳

这个算法题目怎么解,求大神………………第八题求java源码

……求java源码…………………………………………………………………………………………………………………………………………………………………………………………………………图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 指尖1993 2016-12-09 01:39
    已采纳
     mport java.util.*;
    public class Test8_1 {
    int number=1;
    int a[][]=new int[20][20];
    public void doit(int m,int i1,int i2)
    {
    if(m<0) return;
    if(m==1)
    a[i1][i2]=number;
    else
    {
    for(int i=0;i<m;i++)//top
    a[i1][i2+i]=number++;
    for(int i=0;i<m-1;i++)//right
    a[i+i1+1][m+i2-1]=number++;
    for(int i=0;i<m-1;i++)//bottom
    a[m+i1-1][m+i2-2-i]=number++;
    for(int i=0;i<m-2;i++)//left
    a[m+i1-i-2][i2]=number++;
    }
    doit(m-2,i1+1,i2+1);
    }
    public void print(int m)
    {
    for(int i=0;i<m;i++)
    {
    for(int j=0;j<m;j++)
    {
    System.out.print(a[i][j]+" ");
    }
    System.out.println();
    }
    }
    public static void main(String[] args){
    System.out.println("输入数字(1-20):");
    Scanner input=new Scanner(System.in);
    int num=input.nextInt();
    Test8_1 t=new Test8_1();
    t.doit(num,0,0);
    t.print(num);
    }
    }
    

    自己看吧。

    点赞 打赏 评论
  • taxueq 2016-12-09 12:19
    import java.util.Scanner;
    
    
    
    public class LuoXuan {
        private int init=1;
        private int[][] array=new int[20][20];
    
        public void fillNumber(int number,int i,int j,int m,int n){
            if(number<=0)
                return;
            if(number==1)
                array[i][j]=init;
            else{
                //上行
                for(;j<m;j++)
                    array[i][j]=init++;
                //右竖
                for(j--,i++;i<m;i++)
                    array[i][j]=init++;
                //下行
                for(i--,j--;j>=n;j--)
                    array[i][j]=init++;
                //左竖
                for(j++,i--;i>n;i--)
                    array[i][j]=init++;
            }
            fillNumber(number-2, i+1, j+1,number-1,n+1);
    
        }
    
        public void printNumber(int number){
            for(int i=0;i<number;i++){
                for(int j=0;j<number;j++)
                    System.out.print(array[i][j]+" ");
                System.out.println();
            }
        }
    
        public static void main(String[] args) {
            Scanner scanner=new Scanner(System.in);
            System.out.print("please input the number of line:");
            int number=scanner.nextInt();
            LuoXuan luoXuan=new LuoXuan();
            luoXuan.fillNumber(number, 0, 0,number,0);
            luoXuan.printNumber(number);
    
        }
    
    }
    
    
    点赞 打赏 评论

相关推荐 更多相似问题