環形矩陣

1.逆時針

代碼:

 1 // huanxingjz.cpp : Defines the entry point for the console application.
 2 //
 3 
 4 #include "stdafx.h"
 5 #include <stdio.h>
 6 #include <iostream>
 7 #include "windows.h"
 8 #define MAX 40
 9 using namespace std;
10 int n,square[MAX][MAX];
11 
12 int ok(int x,int y)
13 {
14     return (0<=x&&x<n&&0<=y&&y<n&&square[x][y]==0);
15 }
16 
17 int main()
18 {
19     int i,j,k,d;
20     printf("請輸入螺旋方陣的階數n:");
21     //scanf("%d",&n);
22     cin>> n;
23     memset(square,0,MAX*MAX*sizeof(int));
24 
25     for(i=j=d=0,k=1;k<=n*n;++k)
26     {
27         square[i][j]=k;
28         switch(d%4)
29         {
30         case 0:if(ok(i+1,j)) ++i;
31                else ++d,++j;
32                break;
33         case 1:if(ok(i,j+1)) ++j;
34                else ++d,--i;
35                break;
36         case 2:if(ok(i-1,j)) --i;
37                else ++d,--j;
38                break;
39         case 3:if(ok(i,j-1)) --j;
40                else ++d,++i;
41                
42         
43         }
44     }
45 
46     for(i=0;i<n;++i)
47     {
48         printf("\n");
49         for(j=0;j<n;++j)
50             printf("%4d",square[i][j]);
51         printf("\n");        
52     }
53     printf("\n"); 
54     Sleep(10000);
55     /*system("pause");*/
56 }

2.順時針

代碼

 1 // huanxingjz.cpp : Defines the entry point for the console application.
 2 //
 3 
 4 #include "stdafx.h"
 5 #include <stdio.h>
 6 #include <iostream>
 7 #include "windows.h"
 8 #define MAX 40
 9 using namespace std;
10 int n,square[MAX][MAX];
11 
12 int ok(int x,int y)
13 {
14     return (0<=x&&x<n&&0<=y&&y<n&&square[x][y]==0);
15 }
16 
17 int main()
18 {
19     int i,j,k,d;
20     printf("請輸入螺旋方陣的階數n:");
21     //scanf("%d",&n);
22     cin>> n;
23     memset(square,0,MAX*MAX*sizeof(int));
24 
25     for(i=j=d=0,k=1;k<=n*n;++k)
26     {
27         square[i][j]=k;
28         switch(d%4)
29         {
30         case 0:if(ok(i,j+1)) ++j;
31                else ++d,++i;
32                break;
33         case 1:if(ok(i+1,j)) ++i;
34                else ++d,--j;
35                break;
36         case 2:if(ok(i,j-1)) --j;
37                else ++d,--i;
38                break;
39         case 3:if(ok(i-1,j)) --i;
40                else ++d,++j;
41        
42         
43         }
44     }
45 
46     for(i=0;i<n;++i)
47     {
48         printf("\n");
49         for(j=0;j<n;++j)
50             printf("%4d",square[i][j]);
51         printf("\n");        
52     }
53     printf("\n"); 
54     Sleep(10000);
55     /*system("pause");*/
56 }

?

?

?

?

?

?

轉載于:https://www.cnblogs.com/zhouwenJS/p/3837852.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375737.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375737.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375737.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

檢查MySQL主從數據一致性

未公布轉載于:https://www.cnblogs.com/cuizhipeng/p/4646489.html

統計文件里有多少個字符(only a simple cpp)

通過重定向讀取文件內容&#xff0c;并檢測其中有多少字符&#xff0c;包括空格&#xff0c;但tap鍵可能統計結果不同。 #include<iostream>int main(int argc,char *argv[]){using std::cin,std::cout,std::endl;cout<<"Usage:"<<argv[0]<<…

Winsock網絡編程筆記(4)----基本的理論知識

前面的筆記記錄了Winsock的入門編程&#xff0c;領略了Winsock編程的樂趣。。但這并不能算是掌握了Winsock&#xff0c;加深理論知識的理解才會讓后續學習更加得心應手。。因此&#xff0c;這篇筆記將記錄一些有關Winsock的基本理論知識&#xff0c;由于是一篇筆記&#xff0c;…

30分鐘學會使用grunt打包前端代碼

http://www.cnblogs.com/yexiaochai/p/3603389.html轉載于:https://www.cnblogs.com/wuxiang/p/4647280.html

簡單shell:刪除五日之前的日志文件

曾經在某公司面試的時候被問到了類似的問題。 假設在logs文件夾存放了許多日志文件 比如&#xff1a;20190204.log、20190205.log、20190206.log。。。 我們要刪除特定日期之前的日志 在這里展示的是使用shell指令中的find指令完成操作 首先看一下find指令的命令格式&#xf…

Method Swizzle黑魔法,修改 ios 系統類庫方法(轉載)

一般來說&#xff0c;系統提供的方法已經足夠開發了&#xff0c;但是有的時候有些需求用普通方法不好做。 如&#xff1a;在所有的viewcontroll 的viewwillappear&#xff1a;方法之前打個log 你可能會這么做&#xff1a; 1. 建一個uiviewcontroll 父類&#xff0c;重寫viewwil…

win10無法開啟夜間模式

在學校的時候沒感覺&#xff0c;一進公司發現電腦還是需要設置一下護眼的&#xff0c;但是在設置的時候卻遇到夜間模式無法開啟的問題。 首先在左下角搜索設備管理器 找到顯示適配器 查看顯示器設備狀態 如果設備圖標上有黃三角感嘆號則說明該設備驅動有問題&#xff0c;需要…

Linux LVM學習總結——擴展卷組VG

Linux服務器由于應用變更或需求的緣故&#xff0c;有可能出現分區空間不足的情況&#xff0c;此時往往需要進行擴容&#xff08;要增加分區的空間&#xff09;&#xff0c;而采用LVM的好處就是可以在不需停機的情況下可以方便地調整各個分區大小。如下所示&#xff0c;分區/u05…

【液晶模塊系列基礎視頻】1.3.iM_TFT30模塊簡介

【液晶模塊系列基礎視頻】1.3.iM_TFT30模塊介紹 技術論壇&#xff1a;http://www.eeschool.org 博客地址&#xff1a;http://xiaomagee.cnblogs.com 官方網店&#xff1a;http://i-board.taobao.com 銀杏科技 GINGKO TECH. 保留權利&#xff0c;轉載請注明出處 本次教學視頻介…

C++控制向文件中寫入浮點數的格式

有時會遇到向文件中寫入一定格式的浮點數&#xff0c;為了對齊美觀&#xff0c;常常采用控制小數點后的位數并用0補齊缺少的位數的方法。 #include <iostream> #include <iomanip> #include <fstream> using namespace std;int main(){double pi3.14;ofstre…

項目管理工具到底應該為誰服務?

項目管理工具到底應該為誰服務&#xff1f;為管理者&#xff0c;還是為了團隊&#xff1b;為了管理報表&#xff0c;還是為了協作需求&#xff0c;這些是在項目管理工具選擇或開發時需要面對和思考的一個問題。 傳統項目管理工具在團隊內部臭名昭著 項目管理工具當初都是為了項…

二叉樹的遞歸定義及存儲

定義 最多有兩棵子樹的有序樹&#xff0c;稱為二叉樹。二叉樹是一種特殊的樹。 遞歸定義&#xff1a;二叉樹是n(n>0)個有限結點構成的集合。N0稱為空二叉樹&#xff1b;n>0的二叉樹由一個根結點和兩互不相交的&#xff0c;分別稱為左子樹和右子樹的二叉樹構成。 二叉樹中…

C++統計微妙級時間消耗(chrono)

有時我們需要統計某段程序運行所消耗的時間&#xff0c;通過C的chrono庫&#xff0c;我們可以輕松實現這一需求&#xff0c;例如&#xff0c;我們求斐波那契數列消耗的時間。 #include <iostream> #include <chrono> #include <iomanip> using namespace st…

content-length與Transfer-Encoding: chunked的問題釋疑

content-length與Transfer-Encoding: chunked的問題釋疑 http返回頭中content-length與Transfer-Encoding: chunked的問題釋疑 先說說問題出現的背景&#xff1a; 公司服務器與手機客戶端交互&#xff0c;客戶端請求一個動態生成的XML文件&#xff0c;在用firebug查看http響應頭…

基于RSA的加密/解密示例C#代碼

在C#程序中&#xff0c;大家可能比較熟悉的方式是md5加密解密方式&#xff0c;對RSA可能并不是很熟悉&#xff0c; 下面就說一下RSA加密和解密的算法&#xff1a;using System;using System.Security.Cryptography;using System.Text;class RSACSPSample{static void Main(){tr…

iOS GorupBy

轉自&#xff1a; IOS 數組分組 Grouped NSArray 12345678NSMutableSet *set[NSMutableSet set];[_list enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {[set addObject:obj["MeasureType"]];//利用set不重復的特性,得到有多少組,根據數組中的…

android通過adb shell播放音樂

am start -n com.android.music/com.android.music.MediaPlaybackActivity -d /sdcard/timian.mp3拓展閱讀 input keyevent 24 #增加音量 input keyevent 25 #降低音量 input keyevent 85 #暫停/播放 input keyevent 126 #恢復播放 input keyevent 127 #停止播放關閉音樂播放器…

NetBpm 安裝篇(1)

尊重別人勞動成果 轉載注明出處&#xff1a;http://www.cnblogs.com/anbylau2130/p/3875718.html 官方主頁 http://www.netbpm.org/docs/install.html 文件目錄 Netbpm的兩種服務器配置 1&#xff0c;CassiniWebServer CassiniWebServer.exe是輕量級的web服務器&#xff0c;相…

python將文本中的數據處理成圖像(matplotlib)

使用Python的matplotlib模塊可以很方便的將數據處理成圖表&#xff0c;使數據更加形象、直觀。 #!/usr/bin/env pythonimport matplotlib.pyplot as plt import numpy as np from mpl_toolkits.axes_grid.anchored_artists import AnchoredTexty1np.loadtxt(ReadDataCostTime.…