居左


私信TA

用户名:JZ50

访问量:70423

签 名:

楼下你的分数已经再次被超越!!快刷!!

等  级
排  名 32
经  验 13564
参赛次数 2
文章发表 109
年  龄 0
在职情况 学生
学  校 99
专  业

  自我简介:

解题思路:  这个题目就是找规律,看下图:

2,03,2
4,40,11,3
1,42,13,34,00,2
0,31,02,23,44,1
4,20,41,12,33,0
3,14,30,01,22,4
import java.util.Scanner;

public class C1188 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()){
			int n = sc.nextInt();
			if(n == 0)
				break;
			F(n);
		}
		sc.close();
	}
	
	private static void F(int n){
		int[][] a = new int[n][n];
		int mid = (n-1)/2;
		a[mid][mid] = (n+1)/2;
		for(int j = 0; j < n; j++){
			for(int i = 0; i < n; i++){
				a[i][j] = (j-i+mid+n)%n*n + (j-i+j+n)%n + 1;
			}
		}
		
		int len = String.valueOf(n*n).length();
		for(int i = 0; i < n; i++){
			for(int j = 0; j < n; j++){
				if(j < n-1)
					System.out.printf("%" + len + "d ", a[i][j]);
				else
					System.out.printf("%" + len + "d\n", a[i][j]);
			}
		}
		System.out.println();
	}
	
	
}



注意事项:


    输出右对齐,对齐位数为 n*n 的位数


参考代码:

 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区