您的位置:首页 > 编程语言 > C语言/C++

螺旋队列C++代码

2011-11-30 17:21 741 查看
螺旋队列的C++代码:

#define max(a, b) ((a)<(b)?(b):(a))

#define abs(a,b) ((a)>0?(a):(-a))

int foo(int x, int y){

int t = max(abs(x), abs(y));

int u = t + t;

int v = u - 1;

v = v*v + u;

if (x == -t){

v += u + t -y;

}else if (y == -t){

v += 3* u + x - t;

}else if (y == t){

v += t - x;

}else{

v += y - t;

}

return v;

}

int main(){

int x, y;

for (y=-4; y<=4; y++){

for (x=-4; x<=4; x++)

printf("%5d", foo(x, y));

printf("\n");

}

while(scanf("%d%d", &x, &y)==2){

printf("%d\n", foo(x, y));

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: