最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python蛇形方陣的實現(xiàn)

 更新時間:2023年05月19日 08:43:27   作者:機器學(xué)習(xí)Zero  
本文主要介紹了Python蛇形方陣的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

輸入:數(shù)字m mm,n nn

輸出:m mm行n nn列的數(shù)字蛇形方陣

1. 從方陣最左上角開始,順時針向內(nèi)填充。

初始化一個m mm行n nn列的矩陣matrix,所有元素都為0;然后從第一個位置開始,按順序填充數(shù)字,填滿了一列或一行后,就轉(zhuǎn)向填寫下一列或下一行,最后打印出這個數(shù)字蛇形方陣。代碼如下:

def print_snake_matrix(m, n):
    matrix = [[0]*n for i in range(m)]
    num = 1
    i, j = 0, 0
    while num <= m*n:
        while j < n and matrix[i][j] == 0:
            matrix[i][j] = num
            num += 1
            j += 1
        j -= 1
        i += 1
        while i < m and matrix[i][j] == 0:
            matrix[i][j] = num
            num += 1
            i += 1
        i -= 1
        j -= 1
        while j >= 0 and matrix[i][j] == 0:
            matrix[i][j] = num
            num += 1
            j -= 1
        j += 1
        i -= 1
        while i >= 0 and matrix[i][j] == 0:
            matrix[i][j] = num
            num += 1
            i -= 1
        i += 1
        j += 1
    for row in matrix:
        for num in row:
            print(num, end='\t')
        print()

執(zhí)行

print_snake_matrix(4, 6)

輸出

1 2 3 4 5 6
16 17 18 19 20 7
15 24 23 22 21 8
14 13 12 11 10 9

c++實現(xiàn)

#include <iostream>
#include <vector>
using namespace std;
void print_snake_matrix(int m, int n) {
? ? vector<vector<int>> matrix(m, vector<int>(n, 0));
? ? int num = 1;
? ? int i = 0, j = 0;
? ? while (num <= m * n) {
? ? ? ? while (j < n && matrix[i][j] == 0) {
? ? ? ? ? ? matrix[i][j] = num;
? ? ? ? ? ? num++;
? ? ? ? ? ? j++;
? ? ? ? }
? ? ? ? j--;
? ? ? ? i++;
? ? ? ? while (i < m && matrix[i][j] == 0) {
? ? ? ? ? ? matrix[i][j] = num;
? ? ? ? ? ? num++;
? ? ? ? ? ? i++;
? ? ? ? }
? ? ? ? i--;
? ? ? ? j--;
? ? ? ? while (j >= 0 && matrix[i][j] == 0) {
? ? ? ? ? ? matrix[i][j] = num;
? ? ? ? ? ? num++;
? ? ? ? ? ? j--;
? ? ? ? }
? ? ? ? j++;
? ? ? ? i--;
? ? ? ? while (i >= 0 && matrix[i][j] == 0) {
? ? ? ? ? ? matrix[i][j] = num;
? ? ? ? ? ? num++;
? ? ? ? ? ? i--;
? ? ? ? }
? ? ? ? i++;
? ? ? ? j++;
? ? }
? ? for (auto row : matrix) {
? ? ? ? for (int num : row) {
? ? ? ? ? ? cout << num << "\t";
? ? ? ? }
? ? ? ? cout << endl;
? ? }
}

2. 從方陣最右上角開始,逆時針向內(nèi)填充。

由于是從右上角開始填充,所以初始位置為第0 00行第n − 1 n-1n−1列。隨后的填充順序也需要逆時針旋轉(zhuǎn),以保證填充的數(shù)字順序正確。除此之外,這段代碼的實現(xiàn)與前面的代碼基本相同,都是采用四個while循環(huán)來按順序填充數(shù)字。代碼如下:

def print_snake_matrix(m, n):
    matrix = [[0]*n for i in range(m)]
    num = 1
    i, j = 0, n-1
    while num <= m*n:
        while j >= 0 and matrix[i][j] == 0:
            matrix[i][j] = num
            num += 1
            j -= 1
        j += 1
        i += 1
        while i < m and matrix[i][j] == 0:
            matrix[i][j] = num
            num += 1
            i += 1
        i -= 1
        j += 1
        while j < n and matrix[i][j] == 0:
            matrix[i][j] = num
            num += 1
            j += 1
        j -= 1
        i -= 1
        while i >= 0 and matrix[i][j] == 0:
            matrix[i][j] = num
            num += 1
            i -= 1
        i += 1
        j -= 1
    for row in matrix:
        for num in row:
            print(num, end='\t')
        print()

執(zhí)行

print_snake_matrix(4, 6)

輸出

6 5 4 3 2 1
7 20 19 18 17 16
8 21 22 23 24 15
9 10 11 12 13 14

c++實現(xiàn)

void print_snake_matrix(int m, int n) {
? ? vector<vector<int>> matrix(m, vector<int>(n, 0));
? ? int num = 1;
? ? int i = 0, j = n - 1;
? ? while (num <= m * n) {
? ? ? ? while (j >= 0 && matrix[i][j] == 0) {
? ? ? ? ? ? matrix[i][j] = num;
? ? ? ? ? ? num++;
? ? ? ? ? ? j--;
? ? ? ? }
? ? ? ? j++;
? ? ? ? i++;
? ? ? ? while (i < m && matrix[i][j] == 0) {
? ? ? ? ? ? matrix[i][j] = num;
? ? ? ? ? ? num++;
? ? ? ? ? ? i++;
? ? ? ? }
? ? ? ? i--;
? ? ? ? j++;
? ? ? ? while (j < n && matrix[i][j] == 0) {
? ? ? ? ? ? matrix[i][j] = num;
? ? ? ? ? ? num++;
? ? ? ? ? ? j++;
? ? ? ? }
? ? ? ? j--;
? ? ? ? i--;
? ? ? ? while (i >= 0 && matrix[i][j] == 0) {
? ? ? ? ? ? matrix[i][j] = num;
? ? ? ? ? ? num++;
? ? ? ? ? ? i--;
? ? ? ? }
? ? ? ? i++;
? ? ? ? j--;
? ? }
? ? for (auto row : matrix) {
? ? ? ? for (int num : row) {
? ? ? ? ? ? cout << num << "\t";
? ? ? ? }
? ? ? ? cout << endl;
? ? }
}

到此這篇關(guān)于Python蛇形方陣的實現(xiàn)的文章就介紹到這了,更多相關(guān)Python蛇形方陣內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pycharm社區(qū)版安裝node.js插件運行js代碼方法

    pycharm社區(qū)版安裝node.js插件運行js代碼方法

    PyCharm可以說是當(dāng)今最流行的一款Python IDE了,下面這篇文章主要給大家介紹了關(guān)于pycharm社區(qū)版安裝node.js插件運行js代碼的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • Python使用argcomplete模塊實現(xiàn)自動補全

    Python使用argcomplete模塊實現(xiàn)自動補全

    argcomplete?是一個強大的Python庫,可以大幅改善命令行應(yīng)用程序的用戶體驗,本文主要介紹了argcomplete模塊的相關(guān)用法,感興趣的小伙伴可以了解下
    2023-11-11
  • python 音頻處理重采樣、音高提取的操作方法

    python 音頻處理重采樣、音高提取的操作方法

    這篇文章主要介紹了python 音頻處理重采樣、音高提取,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • Python學(xué)習(xí)之元組的使用詳解

    Python學(xué)習(xí)之元組的使用詳解

    Python元組和列表很像,也是一個包含多個元素的集合,本文主要給大家介紹了關(guān)于Python中元組(Tuple)的使用,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • WIndows10系統(tǒng)下面安裝Anaconda、Pycharm及Pytorch環(huán)境全過程(NVIDIA?GPU版本)

    WIndows10系統(tǒng)下面安裝Anaconda、Pycharm及Pytorch環(huán)境全過程(NVIDIA?GPU版本)

    這篇文章主要給大家介紹了關(guān)于WIndows10系統(tǒng)下面安裝Anaconda、Pycharm及Pytorch環(huán)境(NVIDIA?GPU版本)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • Python星號*與**用法分析

    Python星號*與**用法分析

    這篇文章主要介紹了Python星號*與**用法,結(jié)合實例形式較為詳細的分析了Python中的星號*與**在函數(shù)參數(shù)及數(shù)值運算中的相關(guān)使用技巧,需要的朋友可以參考下
    2018-02-02
  • 一文詳解Python中Reduce函數(shù)輕松解決復(fù)雜數(shù)據(jù)聚合

    一文詳解Python中Reduce函數(shù)輕松解決復(fù)雜數(shù)據(jù)聚合

    這篇文章主要為大家介紹了Python中Reduce函數(shù)輕松解決復(fù)雜數(shù)據(jù)聚合示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Python 發(fā)送SMTP郵件的簡單教程

    Python 發(fā)送SMTP郵件的簡單教程

    SMTP(Simple Mail Transfer Protocol)簡單郵件傳輸協(xié)議,Python內(nèi)置對SMTP的支持,可以發(fā)送純文本文件,HTML郵件以及附帶文件。本文講解如何使用python發(fā)送郵件
    2021-06-06
  • python單元測試框架pytest的使用示例

    python單元測試框架pytest的使用示例

    這篇文章主要介紹了python單元測試框架pytest的使用示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Python算法應(yīng)用實戰(zhàn)之隊列詳解

    Python算法應(yīng)用實戰(zhàn)之隊列詳解

    隊列是一種先進先出(First-In-First-Out,F(xiàn)IFO)的數(shù)據(jù)結(jié)構(gòu)。隊列被用在很多地方,比如提交操作系統(tǒng)執(zhí)行的一系列進程、打印任務(wù)池等,一些仿真系統(tǒng)用隊列來模擬銀行或雜貨店里排隊的顧客。下面就介紹了Python中隊列的應(yīng)用實戰(zhàn),需要的可以參考。
    2017-02-02

最新評論

喀喇沁旗| 固始县| 蓬莱市| 睢宁县| 桦甸市| 缙云县| 麦盖提县| 鞍山市| 武义县| 涟水县| 南华县| 营口市| 阿尔山市| 元谋县| 大方县| 丹江口市| 广灵县| 奉新县| 苍梧县| 镇原县| 绥阳县| 福鼎市| 蒲城县| 和田市| 高平市| 宝鸡市| 长泰县| 成安县| 通化县| 景东| 玉环县| 临洮县| 沛县| 香河县| 上林县| 余干县| 寿光市| 运城市| 凌云县| 蒲城县| 寿宁县|