前端之家收集整理的这篇文章主要介绍了
用Swift3实现n*n阶矩阵顺时针输出,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
//: Playground - noun: a place where people can play
//import UIKit
/*
顺时针打印N*N矩阵
*/
func anticlockwiseNN(n:Int){
var m=1;
var a = [[Int]]();
for _ in 0..<n {
//初始化矩阵元素为0
var b = [Int]()
for _ in 0..<n {
b.append(0)
}
a.append(b)
}
for i in 0 ..< n/2 { //只旋转n/2次
for j in i ..< (n-i) { //向右
if a[i][j] == 0 {
a[i][j] = m
m = m + 1
}
}
for j in (i+1) ..< (n-i) { //向下
if(a[j][n-i-1] == 0){
a[j][n-i-1] = m ;
m = m + 1 ;
}
}
for j in ( i ..< (n-i)).reversed(){ //向左
if a[n-i-1][j] == 0 {
a[n-i-1][j] = m ;
m = m + 1
}
}
for j in (i ..< (n-i-1)).reversed() { //向上
if a[j][i] == 0 {
a[j][i] = m
m = m + 1
}
}
}
if(n%2==1){//注意!当n为奇数时,有个正中心点
a[n/2][n/2] = m;
}
for i in 0..<n {
//初始化矩阵元素为0
var s = "";
for j in 0..<n {
if a[i][j] < 10 {
s = s + "0"
}
s = s + String(a[i][j]) + " "
}
print(s)
}
}
anticlockwiseNN(n: 6)