生成1-N*N的矩阵,一圈一圈的
来源:互联网 发布:大专程序员 编辑:程序博客网 时间:2024/05/20 20:56
#include <iostream>using namespace std;int N;int data[100][100];bool visit[100][100];void getNext(int status, int& nx, int &ny){switch (status){case 0://rightnx = 0, ny = 1; break;case 1://downnx = 1, ny = 0; break;case 2://leftnx = 0, ny = -1; break;case 3://upnx = -1, ny = 0; break;}}bool isVaild(int x, int y){if(visit[x][y])return false;if( x < 0 || x > N -1 || y < 0 || y > N - 1)return false;return true;}int main(){cin >> N;for (int i = 0; i < N; i++){for (int j = 0; j < N; j++){data[i][j] = 0;visit[i][j] = false;}}int status = 0;int cx = 0, cy =-1;int nx,ny;for(int num = 1; num <= N * N; ){getNext(status, nx, ny);cx += nx;cy += ny;if (isVaild(cx, cy)){data[cx][cy] = num;visit[cx][cy] = true;num++;}else{status = (status + 1) % 4;cx -= nx;cy -= ny;}}for (int i = 0; i < N; i++){for (int j = 0; j < N; j++){cout << data[i][j] << " ";}cout << endl;}/*for (int i = 0; i < N; i++){for (int j = 0; j < N; j++){cout << visit[i][j] << " ";}cout << endl;}*/}
0 0
- 生成1-N*N的矩阵,一圈一圈的
- 生成n*n蛇形矩阵的算法
- 生成n*n蛇形矩阵的算法
- 用c++动态生成n×n的魔方矩阵
- 顺时针打印矩阵-----防止混乱,可一圈一圈的打印。
- M*N的矩阵
- 生成1~n的排列
- 生成1~n 的排序!!!
- 生成1~n的排列
- 生成1-n的排列
- 生成1-n的排列
- 生成1~n的排列
- 生成1~n的排列
- 生成1~n的排列
- 生成1~n的排列
- 生成1~n的排列
- 一种N*N矩阵的打印方法
- n*n螺旋矩阵的实现
- hdu 1061 Rightmost Digit
- 成为更好的交谈者
- 谈谈jQuery和js里有关位置和宽高的方法
- PHP 用session与gd库实现简单验证码生成与验证的类
- [DevExpress]GridControl根据条件改变单元格/行颜色(Dev GridControl 单元格着色)
- 生成1-N*N的矩阵,一圈一圈的
- 从链表A中删除从i开始的len个元素,同时粘贴到B链表的第j元素之前
- Http报头Accept与Content-Type的区别
- 数据结构与算法设计(读书笔记):2.算法分析
- 记录一次并未读源码调试程序的经历
- Android中View的事件体系(1)——坐标体系与移动
- 初试ASP.NET5 & MVC6 发布错误
- 八大排序算法之直接插入排序
- iOS 中UIAlertView 的简单使用