腾讯笔试题,蛇形矩阵的Java实现

import java.util.Scanner;


public class Snake {

	/**
	 * @param 可以将每次循环看做一个画一个正方形,每次画完了正方形的边长减少2
	 * 即上下限各减少1
	 */
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();//输入矩阵行数
		int dire;//当前方向
		final int right = 0;
		final int down = 1;
		final int left = 2;
		final int up = 3;
		dire = right;//初始方向为向右
		int maxn = num;//当前回字形上边界
		int minn = 0;//当前回字形上边界
		//maxm+maxn = num 上下边界和为num
		int a[][] = new int[num][num];//构造的矩阵
		int r = 0;//当前行号
		int c = 0;//当前列号
		int val = 1;//当前矩阵位置的值
		while(val<=num*num){
			switch(dire){
				case right:
					//当前列号小于上限
					if(c<maxn){
						a[r][c] = val;
						val++;//值依次+1
						c++;//列号递增
						continue; //跳过该次循环  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值