螺旋队列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;
}
#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;
}
相关文章推荐
- 螺旋队列C++代码实现实例及运行结果
- 螺旋队列C++代码实现实例及运行结果
- 螺旋队列C++代码实现实例及运行结果
- 螺旋队列C++代码实现实例及运行结果
- 螺旋队列C++代码实现实例及运行结果
- 螺旋队列C++代码实现实例及运行结果
- 螺旋队列C++代码实现实例及运行结果
- 螺旋队列C++代码实现实例及运行结果
- 螺旋队列C++代码实现实例及运行结果
- 螺旋队列C++代码实现实例及运行结果
- 螺旋队列C++代码实现实例及运行结果
- 队列的入队,出队,测长度,打印c++代码
- 两个栈来实现一个队列的C++代码
- C++ STL入门教程(3)——deque(双向队列)的使用(附完整程序代码)
- 程序员面试题精选(48):两个堆栈模拟队列c++代码实现
- 【程序员代码面试指南 编程笔记】猫狗队列(C++解法)
- C++ - 库函数优先级队列(priority_queue)输出最小值 代码
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 队列的入队,出队,测长度,打印c++代码
- c++面试准备之螺旋队列