autodesk矩阵题答案分享
#include "iostream"
using namespace std;
#define RIGHT 1
#define DOWN 2
#define LEFT 3
#define UP 4
int judge(int step, int walk, int flag)
{
if( walk < step )return flag;
switch(flag)
{
case RIGHT:
return DOWN;
case DOWN:
return LEFT;
case LEFT:
return UP;
case UP:
return RIGHT;
}
}
void matrix(int N)
{
int length = N * N;
int *p = new int[length];
int flag = RIGHT;
int step = N;
int count = 0;
int walk = -1;
for(int i = 0 ; i < length ; i++)
{
walk += 1;
int newflag = judge(step , walk , flag);
if(flag != newflag)
{
count += 1;
flag = newflag;
walk = 0;
if( (count + 1) % 2 == 0 )
{
step -= 1;
}
}
switch(flag)
{
//right
case RIGHT:
if(i == 0)
p = 0;
else
p = p[i - 1] + 1;
搜索更多相关主题的帖子:
autodesk 矩阵 分享