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

来源:互联网 发布:盛势网络剧最新消息 编辑:程序博客网 时间:2024/05/19 20:21
//: 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[j][i] == 0){                                a[j][i] = m ;                m = m + 1 ;            }        }                for j in (i + 1 ) ..< (n-i) { //向右            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][n-i-1] == 0 {                a[j][n-i-1] = m                m = m + 1            }        }                for j in ((i + 1 ) ..< (n-i-1)).reversed(){ //向左            if a[i][j] == 0 {                                a[i][j] = 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: 5)

0 0
原创粉丝点击