学霸题 - 数正方形
【摘要】
前言:
作者:神的孩子在歌唱
大家好,我叫运智
学霸题 - 数正方形
Description
这是一道学霸题 - 数正方形
你需要用到顺时针标数法, 从第一行第一列往右数:
第一...
前言:
作者:神的孩子在歌唱
大家好,我叫运智
学霸题 - 数正方形
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
- 1
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
- 1
- 2
- 3
- 4
- 5
Sample Input 2
3
- 1
Sample Output 2
0 1 2
7 8 3
6 5 4
- 1
- 2
- 3
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();
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
本人csdn博客:https://blog.csdn.net/weixin_46654114
转载说明:跟我说明,务必注明来源,附带本人博客连接。
文章来源: chenyunzhi.blog.csdn.net,作者:神的孩子都在歌唱,版权归原作者所有,如需转载,请联系作者。
原文链接:chenyunzhi.blog.csdn.net/article/details/122933530
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)