用Swift3实现n*n阶矩阵顺时针输出

来源:互联网 发布:c语言abs 编辑:程序博客网 时间:2024/05/29 11:50
//: 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)

0 0
原创粉丝点击