1. 程式人生 > >【p40頁】蛇形填數

【p40頁】蛇形填數

在n*n方陣裡填入1,2,„,n*n,要求填成蛇形。例如n=4時方陣為

10 11 12 1

9 16 13 2

8 15 14 3

7 6 5 4

上面的方陣中,多餘的空格只是為了便於觀察規律,不必嚴格輸出。n≤8。

思路,我們使用二維陣列來儲存題目中的方陣,二維陣列的行數和列數並不需要一定相等。
從1開始填寫二維陣列,觀察軌跡:下,左,上,右,下,左,上。遇到邊界就改變方向。
先把所有的格子都填為0,可以方便的判斷是否以前填過這個格子。

#include <bits/stdc++.h>
#include <cstdio> #define MAXN 20 using namespace std; static int a[MAXN][MAXN]; int main() { int n,x,y,tot=0; while(cin>>n) { memset(a,0,sizeof a); tot=a[x=0][y=n-1]=1; //複合寫法,初始化x和y while(tot<n*n) { while(x+1<n&&!a[x+1
][y]) a[++x][y]=++tot; //這裡如果左右條件交換,則會越界。 while(y-1>=0&&!a[x][y-1]) a[x][--y]=++tot; while(x-1>=0&&!a[x-1][y]) a[--x][y]=++tot; while(y+1<n&&!a[x][y+1]) a[x][++y]=++tot; } for(x=0;x<n;x++) { for
(y=0;y<n;y++) printf("%3d",a[x][y]); cout<<endl; } } return 0; }

相關推薦

p40蛇形

在n*n方陣裡填入1,2,„,n*n,要求填成蛇形。例如n=4時方陣為 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 上面的方陣中,多餘的空格只是

經典演算法:蛇形,最簡單的方法了。。。

問題概述 什麼是蛇形填數,百度一下即可 解法 你能發現這裡面的數為1到 n*n; 所以寫個迴圈即可 while(count<n*n){ while(x+1&l

ACM蛇形

先判斷,再移動,而不是發現越界了再退回來。  #include "stdio.h" #include "string.h" #define maxn 20 int a[maxn][maxn]; int

java蛇形 螺旋

蛇形填數 在n*n的方陣裡填成蛇形,例如:     1    2    3   4  5  16 17 18 19 6  15 24 25 20 7  14 23 22 21 8  13 12 11 10 9 原理:建立一個二維陣列,將陣列清零,用a[i][j]==0判

leetcode 59. Spiral Matrix II蛇形

Given a positive integer n, generate a square matrix filled with elements from 1 to n2 in spiral orde

852 蛇形(二)模擬

蛇形填數(二) 時間限制:2000 ms  |  記憶體限制:65535 KB 難度:3 描述 1 2 3 4 5 12 13 14 6 11 15 7 10 8 9 跟蛇形填數一

比賽NOIP2018 遊戲

c++ com rst first void pri freopen end != 打表找規律。。。。 #include<bits/stdc++.h> #define ui unsigned int #define ll long long #define

Z-Stack發送據函“afStatus_t AF_DataRequest”參解讀

設置 message 自己的 如果 tac 應用 掩碼 code class Z-Stack 中發送數據通過在應用層調用函數 void SampleApp_SendFlashMessage( uint16 flashTime ) 完成,其中flash Time 為發送的

nginx筆記系統參設置-使Nginx支持更多並發請求的TCP網絡參

logs 個數 服務 操作 fin 主動 長度 連接數量 內核參數 首先,需要修改/etc/sysctl.conf來更改內核參數。例如,最常用的配置: fs.file-max = 999999 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_

Java基礎Java基本據類型與位運算

右移 數據 bits 類型 span 網上 height 使用 常數 1.賦值運算符 賦值使用操作符“=”。它的意思是“取右邊的值(即右值),把它復制給左邊(即左值)”。右值可以是任何 常數、變量或者表達式 (只要它能 生成

涉及到的table的請求模式

over 設置 rop gpo 服務 class 16px 可能 一個 step:1  點擊分頁器的內容  trigger事件句柄 (pagination, filters, sorter) => {//或者(page, pageSize)等 this.pr

逆向知識裸函(Naked函)

code 生成 markdown add mark 定義 程序代碼 驅動程序 main 1 說明 指定裸函數編寫的函數,編譯器生成不帶任何多余代碼。 利用此功能,可以使用內聯匯編程序代碼編寫自己的 prolog/epilog 代碼序列。 裸函數對於編寫虛擬設備驅動程序特別有

蛇形蛇形(基礎模擬練習)

code 練習 color 順序 printf urn pri int 蛇形填數 1 /* 2 問題 輸入矩陣的規模n,先將數按照下,右,上,左的順序填入矩陣,再按照這樣的順序取出。 3 解題思路 模擬,按照筆的順序存入取出,註意初始化的時候一定將矩陣全部初始化。

線上直播巨量據下的風控

數字 dba chat TP strip 人工 com for 數據分析師 嘉賓: 王頓 Wolfric 講師簡介: 極光數據部風控中心高級數據分析師、高級售前工程師。 王頓於美國史蒂文斯理工學院獲得碩士學位,本科畢業於上海財經大學,精通大數據技術

Spring Security二、據庫管理用戶權限

max xmlns art create http 文件 int nag del 一 引入相關的jar包 這個例子用的是mysql數據庫和c3p0開源的jdbc連接池,在項目的pom.xml中引入jar包 <!-- Mysql -->

NOIP 2009 靶形

ans lowbit nbsp 數獨 get while ask pri bsp 【題目鏈接】 https://www.luogu.org/problemnew/show/P1074 【算法】 搜索 + 剪枝 【代碼】

復習後綴

algorithm std light 模板 ostream n) family 上一個 -- 貼模板,復習註意事項 補一句,SA是$O(N(logN))$的,暴力是$O(N(log^2(N)))$的,不卡的話,實在忘記了,就暴力,實惠又劃算 CODE: #inclu

蛇形

amp size ace define max 要求 移動 循環控制 src 在n*n的方陣裏填入1,2,...,n*n,要求甜填成蛇形。 我的程序 #include<iostream>#include<string.h>using nam

C#/WPF圖像據格式轉換時,透明度丟失的問題

csdn pypi 數據類型 acc scan str 圖像 ber release 原文:【C#/WPF】圖像數據格式轉換時,透明度丟失的問題 問題:工作中涉及到圖像的數據類型轉換,經常轉著轉著

工程實踐服務器據解析

something 時間比較 數據訪問 shu 成員 字段值 ear 計時 日誌 本文來自網易雲社區作者:孫建順在客戶端開發過程中一個重點內容就是解析服務器數據,關於這個話題也許大家首先會去思考的問題是用哪個json解析庫。是的,目前通過json格式進行數據傳輸是主流的方式