蛇形矩阵--斜着打印

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);

int n=sc.nextInt();

int[][] ans=new int[n][n];

int count=0;

boolean flag=true;//检验是否要反转

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

for(int j=0;j<=i;j++){

count++;//自动变化要存入的数

if(flag){//本质是利用直线上x,y和为定值

ans[i-j][j]=count;

}else{

ans[j][i-j]=count;

}

}

flag=!flag;//每次斜着打印完就反转一下

}

for(int i=n-1;i>0;i--){//注意到右下角的三角中两下标和为定值

for(int j=0;j<i;j++){

count++;//自动变化要存入的数

if(flag){//本质是利用直线上x,y和为定值

ans[n-1-j][n-i+j]=count;

}else{

ans[n-i+j][n-1-j]=count;

}

}

flag=!flag;//每次斜着打印完就反转一下

}

for (int i = 0; i < ans.length; i++) {

for (int j = 0; j < ans.length; j++) {

System.out.printf(ans[i][j]+" ");

}

System.out.println("");

}

}

}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 11:35
程序员小白条:话太多,没实力和学历,差不多回答回答就行了,身份地位不一样
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 12:05
点赞 评论 收藏
分享
06-12 16:23
已编辑
小米_软件开发(准入职员工)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务