方阵旋转

方阵旋转 华为笔试题:100分 2019年5月8日星期三

输入一个N阶方阵(0<N<10),输出此方阵顺时针旋转M(0<=M<=10000)次后的方阵(数字绕中心顺时针旋转,旋转一次相当于旋转90°)

	var N = readline();
    // var N = 4;
    var arr = [];
    var line;
    for(var i = 0; i < N; i++) {
        // arr[i] = readline().split(" ");
        line = readline().split(" ");//将读入的字符串变为数组
        arr.push(line);
        // arr.push([1,2,3,4]);
    }
    // 此时得到一个二维数组
    // arr = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]];
    // console.log(arr);
    // console.log(arr instanceof Array);

    var M = readline();
    // var M = 4;

    var m = M % 4;   //因为四次一个循环
    var newArr = [];
    if(m==1) {
        for(var i = 0; i < N; i++) {
            newArr[i]=[];  //注意此时创建另外一个二维数组时的方法
            for(var j = 0; j < N; j++) {
                newArr[i][j] = arr[N - j -1][i];
            }
        }
    }else if(m==2) {
        for(var i = 0; i < N; i++) {
            newArr[i]=[];
            for(var j = 0; j < N; j++) {
                newArr[i][j] = arr[N - i -1][N - j -1];
            }
        }
    }else if(m==3) {
        for(var i = 0; i < N; i++) {
            newArr[i]=[];
            for(var j = 0; j < N; j++) {
                newArr[i][j] = arr[j][N - i -1];
            }
        }
    }else{
        newArr = arr;
    }

    // console.log(newArr);

    //因为题中要求最后输出时数组间以空格形式输出
    var brr = [];
    for(var i =0; i < N; i++) {
        brr = newArr[i].join(" ");
        console.log(brr);
        // print(brr);
    }

	// 返回指定unicode编码对应的字符(今天学习到的,与上面题无关)
    document.write(String.fromCharCode(42, 42, 42, 124));// ***|
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值