欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門教程網(wǎng)!

Java編程

當(dāng)前位置:主頁(yè) > 軟件編程 > Java編程 >

Java編程實(shí)現(xiàn)打印螺旋矩陣實(shí)例代碼

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:Java編程|點(diǎn)擊: 次

直接上代碼吧。

昨晚騰訊在線測(cè)試遇到的題。

螺旋矩陣是指一個(gè)呈螺旋狀的矩陣,它的數(shù)字由第一行開(kāi)始到右邊不斷變大,向下變大,向左變大,向上變大,如此循環(huán)。

import java.util.Scanner;
public class mysnakematrix {
	private int n;
	//
	private int a[][];
	// 聲明一個(gè)矩陣
	private int value = 1;
	// 矩陣?yán)飻?shù)字的值
	public mysnakematrix(int i) {
		this.n = i;
		a = new int[n][n];
	}
	// 計(jì)算第m層左上角的數(shù)字
	private int getcorner(int m) {
		int corner = 1;
		int o = n - 1;
		for (int i = 0; i < m - 1; ++i) {
			corner += 4 * o;
			o = o - 2;
		}
		return corner;
	}
	// 生成矩陣的每一層的每一邊的數(shù)
	// s表示4個(gè)方向,分別取值1,2,3,4,表示4個(gè)不同的方向。
	// o表示這條邊的起始值。
	// x表示第m層每條邊的數(shù)字個(gè)數(shù)
	private void side(int s, int o, int x, int m) {
		int i = 0;
		int j = 0;
		switch (s) {
			case 1:
			      i = m - 1;
			j = m - 1;
			for (int k = 0; k < x; ++k) {
				a[i][j + k] = value;
				++value;
			}
			break;
			case 2:
			      i = m - 1;
			j = m - 1 + x;
			for (int k = 0; k < x; ++k) {
				a[i + k][j] = value;
				++value;
			}
			break;
			case 3:
			      i = m - 1 + x;
			j = m - 1 + x;
			for (int k = 0; k < x; ++k) {
				a[i][j - k] = value;
				++value;
			}
			break;
			case 4:
			      i = m - 1 + x;
			j = m - 1;
			for (int k = 0; k < x; ++k) {
				a[i - k][j] = value;
				++value;
			}
			break;
		}
	}
	// 生成蛇形矩陣的第m層
	private void shell(int m)// m表示第m層
	{
		int x = n - 1 - (m - 1) * 2;
		// x表示第m層每條邊的數(shù)字個(gè)數(shù)
		int o = getcorner(m);
		int o1 = o;
		int o2 = o1 + x;
		int o3 = o2 + x;
		int o4 = o3 + x;
		// System.out.println(o4);
		side(1, o, x, m);
		side(2, o, x, m);
		side(3, o, x, m);
		side(4, o, x, m);
	}
	// 生成蛇形矩陣
	public void snakeMatrix() {
		int m = (n + 1) / 2;
		// 計(jì)算一共有多少層
		for (int i = 1; i <= m; ++i) {
			shell(i);
		}
		if (n % 2 == 1) {
			a[n / 2][n / 2] = n * n;
		}
	}
	// 打印矩陣
	public void print() {
		for (int i = 0; i < n; ++i) {
			for (int j = 0; j < n; ++j) {
				if (a[i][j] < 10) {
					System.out.print(a[i][j] + " ");
				} else {
					System.out.print(a[i][j] + " ");
				}
			}
			System.out.println();
		}
	}
	public static void main(String args[]) {
		mysnakematrix my = new mysnakematrix(new Scanner(System.in).nextint());
		//利用Scanner獲取控制臺(tái)輸入
		my.snakeMatrix();
		my.print();
	}
}

總結(jié)

以上就是本文關(guān)于Java編程實(shí)現(xiàn)打印螺旋矩陣實(shí)例代碼的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:

Java語(yǔ)言描述存儲(chǔ)結(jié)構(gòu)與鄰接矩陣代碼示例

Java編程實(shí)現(xiàn)鄰接矩陣表示稠密圖代碼示例

Java編程實(shí)現(xiàn)A*算法完整代碼

如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

上一篇:Java編程實(shí)現(xiàn)用hash方法切割文件

欄    目:Java編程

下一篇:java編程實(shí)現(xiàn)并查集的路徑壓縮代碼詳解

本文標(biāo)題:Java編程實(shí)現(xiàn)打印螺旋矩陣實(shí)例代碼

本文地址:http://mengdiqiu.com.cn/a1/Javabiancheng/8397.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有