網站首頁 編程語言 正文
問題描述??
輸入一個正整數n
在n*n的方陣內填入1,2,3,4…n*n,要求填成蛇形。(回旋的向中間收斂)
樣例輸入:
4
樣例輸出:
不必嚴格按照格式輸出,
問題分析??
蛇形填數,目的是為了考驗我們對數組索引的熟悉情況,觀察可知需要從右上角開始遍歷 先向下等碰到了下限左轉然后向上然后右轉,一直遍歷到最中心。這里需要對邊界進行判斷 我們對邊界判斷的時候需要有一個緩沖空間也就是說先判斷下一位置再賦值。 (如果先賦值再判斷,想往回走的話很麻煩),還有一點就是定住二維數組的一行或一列 移動另外的索引。由此我們可以寫出以下代碼。
代碼實現??
老規矩先上運行結果:
有了上面的思路后我們還可以進行逆時針的蛇形數組。
使用定一移一的思想我們還可以對數組進行旋轉。
蛇形數組源碼
import sys def sn1(n): arr=[] for i in range(n): arr.append([0]*n) row=0 col=n-1 arr[row][col]=1 i=1 while i-1 and (not arr[row][col-1]): arr[row][col-1]=i+1 col-=1 i+=1 while row-1>-1 and (not arr[row-1][col]): arr[row-1][col]=i+1 row-=1 i+=1 while col+1 -1 and not(arr[row][col-1])): arr[row][col-1]=i+1 i+=1 col-=1 while(row+1 -1 and not(arr[row-1][col])): arr[row-1][col]=i+1 i+=1 row-=1 for i in range(n): flag=True for j in range(n): if flag: print(arr[i][j],end="") flag=False else: print("\t",arr[i][j],end="",sep="") print() if __name__=="__main__": n=int(input()) print("蛇形數組如下(順時針):") sn1(n) print("蛇形數組如下(逆時針):") sn2(n)
旋轉數組源碼
''' 大家都學習過矩陣,今天呢咱們將n*n類型的字符矩陣進行向左的90°旋轉 ''' #生成全為零的矩陣 arr=[] n=int(input()) for i in range(n): arr.append([0]*n) #蛇形矩陣 row=0 col=n-1 arr[row][col]=i=1 while i=0 and not arr[row][col-1]: arr[row][col-1]=i+1 i+=1 col-=1 while row-1>=0 and not arr[row-1][col]: arr[row-1][col]=i+1 i+=1 row-=1 while col+1
原文鏈接:https://blog.csdn.net/apple_51931783/article/details/123215979
相關推薦
- 2022-10-02 C#使用is、as關鍵字以及顯式強轉實現引用類型轉換_C#教程
- 2023-03-26 C#?try?catch代碼塊不起效果的解決方法_C#教程
- 2022-06-19 C語言圖文并茂講解分支語句用法_C 語言
- 2022-11-20 React?跨端動態化核心技術實例分析_React
- 2022-12-01 Docker系列學習之Swarm?mode管理節點常用命令詳解_docker
- 2023-01-21 一文帶你學會C語言中的qsort函數_C 語言
- 2022-07-19 sprintf和sscanf的用法及應用
- 2022-12-04 React使用refs操作DOM方法詳解_React
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支