用JS或C語言實現按照1,2,5,3,6,9,4,7,10,13….16每次都是斜着的順序打印四行四列的二維數組。

最近筆者做了一道算法題,題目要求:用js對角線打印一個二維數組,

數組如下所示:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

按照1,2,5,3,6,9,4,7,10,13….16的順序輸出。

解答:其實不管用什麼語言實現都一樣,最重要的就是雙重循環的循環條件。

以JavaScript爲例,代碼如下:

<script type="text/javascript">
            var arr = new Array(
                [1,2,3,4],
                [5,6,7,8],
                [9,10,11,12],
                [13,14,15,16]
        )
            for(i=0;i<arr[0].length;i++){
                for(j=0;j<=i;j++){
                console.log(arr[j][i-j])
                }
            }
        
            for(i=3;i>0;i--){
                for(j=0;j<i;j++){
                    console.log(arr[3-i+j+1][3-j])
                }
            }
    </script>

 以上代碼,可以實現要求。其實不僅是四行四列的二位數組,n行n列數組也一樣,修改一下循環條件即可,來自己動手試下吧~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章