当前位置: 首页 > article >正文

回型矩阵:JAVA

解题思路:

通过定义四条边界;top,left,right,bottom,来循环,当top>=bottom&&left>=right的时候循环终止

38371184b7d1420f9b63f1bbfd51538b.png

c31f7a29b82b497687d17e7dd5e64a1c.png

循环结束的条件:

9bc08395c4ba4e879477c34ab69bc52e.png

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

题目描述

给你一个整数n,按要求输出n∗n的回型矩阵

输入描述:

输入一行,包含一个整数n

1<=n<=19

输出描述:

输出n行,每行包含n个正整数.

示例1

输入

4

输出

1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7

代码:

package cs2;

import java.util.Scanner;

public class T12 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int n=scanner.nextInt();
        int [][]arr=new int[n][n];
        int left=0;
        int right=n-1;
        int top=0;
        int bottom=n-1;
        int sum=1;
        while (left<=right&&top<=bottom){
            //从左到右
           //这个循环写的是top边界,它要不断的往下去循环,所以这里数组的行是top,里面的值是列
            //列是可变的所以列++,当时top的值是0,所以要给top赋值让它一只往下加
            //当top的值大于bottom的时候跳出while循环遍历数组所有元素输出;
            for (int i = left; i <=right ; i++) {
                arr[top][i]=sum++;
            }
            top++;
            //从上往下
            for (int i = top; i <=bottom ; i++) {
                arr[i][right]=sum++;
            }
            right--;
            for (int i =right; i >=left ; i--) {
                arr[bottom][i]=sum++;
            }
            bottom--;
            for (int i =bottom; i >=top ; i--) {
                arr[i][left]=sum++;
            }
            left++;
        }
        for (int i = 0; i <n ; i++) {
            for (int j = 0; j <n ; j++) {
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }
    }
}

 

 


http://www.kler.cn/a/441657.html

相关文章:

  • 【RAG落地利器】向量数据库Chroma入门教程
  • numpy库ndarray维度问题
  • 内存 管理
  • STM32 FreeRTOS 任务挂起和恢复---实验
  • Pix2Pix:图像到图像转换的条件生成对抗网络深度解析
  • 深入探索Python人脸识别技术:从原理到实践
  • 如何通过递延型指标预测项目的长期成果?
  • 多音轨视频使用FFmpeg删除不要音轨方法
  • 性能参数对比
  • Windows server 服务器网络安全管理之防火墙出站规则设置
  • Next.js流量教程:如何使用 Next.js 构建 SEO 友好的博客
  • 【Unity基础】Unity中拖拽3D物体的过程分析和实现方法
  • 〔 MySQL 〕视图
  • CMD使用SSH登陆Ubuntu
  • llm chat场景下的数据同步
  • 万字总结Python 设计模式:21种模式实际应用
  • 计算机网络安全复习
  • el-table 列的字段内容太多show-overflow-tooltip 不显示,数据列闪烁抖动
  • Unity Pico 实现离线TTS
  • Superset 和 Appsmith的对比
  • js 中将字符串转变为变量
  • Java项目--仿RabbitMQ的消息队列--内存数据管理
  • Qt WORD/PDF(四)使用 QAxObject 对 Word 替换(QWidget)
  • VScode:常见问题的原因及其解决方案
  • Linux高性能服务器编程 | 读书笔记 | 9.定时器
  • Git简介和特点