【JAVA】蛇形矩阵2

题目描述

根据输入的N的值产生一个N*N的蛇形矩阵

输入

n

输出

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

思路

首先新建一个n行n列的矩阵,然后开始填数。通过观察可以发现填数的方向有两个,一个是往右下角填数,一个是往右上角填数。那么如何让程序判断当前是应该往右下角还是右上角走呢?我的方法是定义一个变量,当它为单数的时候,往右下角走,双数就往右上角走,并设置它在循环结尾递增。(如果有更好的方法可以留言让我知道)再有就是确定每一轮填数的出发点,观察可以看出,每一轮的出发点都在矩阵的四个边上,当第一轮填数结束之后,i=1,j=0,也就是在3的位置,这个时候应该先往下填4,然后再从4的位置开始往右上角继续填数,往左下角填数的时候也是一样的,所以这个地方也要设置好条件。有了思路之后就用代码表示出来。

import java.util.Scanner;

public class P1105 {
   
    public static void main(String[] args) {
   
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[][] arr = new int[n][n];
        int i=
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值