学霸题 - 数正方形
Posted 神的孩子都在歌唱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学霸题 - 数正方形相关的知识,希望对你有一定的参考价值。
前言:
作者:神的孩子在歌唱
大家好,我叫运智
学霸题 - 数正方形
Description
这是一道学霸题 - 数正方形
你需要用到顺时针标数法, 从第一行第一列往右数:
第一个数字标上00, 第二个数字标上11, \\cdots⋯, 第ii个数字标上(i - 1)%10(i−1)%10, 如下图所示
你学会了吗?
Input
输入仅包含一个正整数n(1\\le n\\le 100)n(1≤n≤100), 代表正方形的边长
Output
输出一个n\\times nn×n的矩阵, 代表在数正方形时所标记的数字
注意: 行末不应该出现多余的空格
Sample Input 1
5
Sample Output 1
0 1 2 3 4
5 6 7 8 5
4 3 4 9 6
3 2 1 0 7
2 1 0 9 8
Sample Input 2
3
Sample Output 2
0 1 2
7 8 3
6 5 4
import java.util.Scanner;
/**
* http://106.12.175.135/contest/5/problem/1062
*/
public class Main
public static void main(String[] args)
Scanner st=new Scanner(System.in);
int num=st.nextInt();
int[][] data=new int[num][num];
// 循环将0~9个数字填入
int i=0,j=0,p=num-1,nums=1,n=num;
if (num%2!=0)
n=(num+1)/2;
else
n=n/2;
while(n>0)
int k=p;
while(j<=k)
data[i][j]=(nums-1)%10;
nums++;
j++;
int z=p;
i++;
j--;
while(i<=z)
data[i][j]=(nums-1)%10;
i++;
nums++;
i--;
k=num-p-1;
while(j>k)
j--;
data[i][j]=(nums-1)%10;
nums++;
z=num-p-1;
i--;
while(i>z)
data[i][j]=(nums-1)%10;
i--;
nums++;
i++;
j++;
p--;
n--;
for (int k=0;k<num;k++)
for (int x=0;x<num;x++)
if (x!=num-1)
System.out.print(data[k][x]+" ");
else
System.out.print(data[k][x]);
System.out.println();
本人csdn博客:https://blog.csdn.net/weixin_46654114
转载说明:跟我说明,务必注明来源,附带本人博客连接。
以上是关于学霸题 - 数正方形的主要内容,如果未能解决你的问题,请参考以下文章