【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格式進行數據傳輸是主流的方式