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

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

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

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

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

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

初始化一個(gè)m mm行n nn列的矩陣matrix,所有元素都為0;然后從第一個(gè)位置開始,按順序填充數(shù)字,填滿了一列或一行后,就轉(zhuǎn)向填寫下一列或下一行,最后打印出這個(gè)數(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++實(shí)現(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. 從方陣最右上角開始,逆時(shí)針向內(nèi)填充。

由于是從右上角開始填充,所以初始位置為第0 00行第n − 1 n-1n−1列。隨后的填充順序也需要逆時(shí)針旋轉(zhuǎn),以保證填充的數(shù)字順序正確。除此之外,這段代碼的實(shí)現(xiàn)與前面的代碼基本相同,都是采用四個(gè)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++實(shí)現(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蛇形方陣的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python蛇形方陣內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

    Python使用argcomplete模塊實(shí)現(xiàn)自動(dòng)補(bǔ)全

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

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

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

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

    Python元組和列表很像,也是一個(gè)包含多個(gè)元素的集合,本文主要給大家介紹了關(guān)于Python中元組(Tuple)的使用,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    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)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Python星號(hào)*與**用法分析

    Python星號(hào)*與**用法分析

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

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

    這篇文章主要為大家介紹了Python中Reduce函數(shù)輕松解決復(fù)雜數(shù)據(jù)聚合示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    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的使用示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Python算法應(yīng)用實(shí)戰(zhàn)之隊(duì)列詳解

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

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

最新評論

苍南县| 错那县| 禄劝| 乌拉特前旗| 博白县| 南岸区| 龙泉市| 桐乡市| 厦门市| 张家川| 文安县| 庆安县| 福安市| 潼关县| 千阳县| 三台县| 嘉峪关市| 息烽县| 大方县| 礼泉县| 蓬安县| 饶平县| 耿马| 九寨沟县| 林州市| 会泽县| 定日县| 宁陵县| 通化县| 台南县| 贞丰县| 上杭县| 延边| 锦屏县| 泰和县| 上犹县| 太原市| 子洲县| 虞城县| 米泉市| 枣庄市|