c++ 螺旋数字队列
2013-10-18 14:53
176 查看
/*
函数描述:
21 22 23 24 25 26
20 7 8 9 10 27
19 6 1 2 11 .
18 5 4 3 12 .
17 16 15 14 13 .
以数字1为原点,X轴向右为正,y轴向下为正,建立数轴 那么数字2的坐标为(1,0)
数字9的坐标为(1,-1),数字5的坐标为(-1,1) 现在编程实现输入一点(x,y),输出这点在数轴上对应的值
*/
#include <iostream>
using namespace std;
int abs(int x){
if(x>0)
return x;
else
return -x;
}
int getNum(int x,int y){
int n,s; // n是所在圈数,s为上圈末尾值
int val; // 结果
if (0==x && 0==y) return 1;
n=abs(x)>abs(y)?abs(x):abs(y); //确定圈数
s=(n*2-1)*(n*2-1); //计算上圈最后一个值,为2n-1的平方
//核心代码
if (x==n && y!=-n) val=s+n+y; // 第1列,s+n后为中间值,加减x或y调整
else if (y==n && x!=n) val=s+n-x+n*2; // 第2列,第二列加上2n调整,2n就是第一列的几个数
else if (x==-n && y!=n) val=s+n-y+n*2*2;// 第3列,第三列加上2个2n
else if (y==-n && x!=-n) val=s+n+x+n*2*3;// 第4列,同样的,第四列加3个2n
return val;
}
void main(void)
{
int i,j;
for(i=-4;i<=4;++i)
{
for(j=-4;j<=4;++j)
{
cout<<getNum(j,i)<<"\t";
}
cout<<endl;
}
cout<<endl<<getNum(1,-1)<<endl;
cout<<endl<<getNum(-1,1)<<endl;
}
函数描述:
21 22 23 24 25 26
20 7 8 9 10 27
19 6 1 2 11 .
18 5 4 3 12 .
17 16 15 14 13 .
以数字1为原点,X轴向右为正,y轴向下为正,建立数轴 那么数字2的坐标为(1,0)
数字9的坐标为(1,-1),数字5的坐标为(-1,1) 现在编程实现输入一点(x,y),输出这点在数轴上对应的值
*/
#include <iostream>
using namespace std;
int abs(int x){
if(x>0)
return x;
else
return -x;
}
int getNum(int x,int y){
int n,s; // n是所在圈数,s为上圈末尾值
int val; // 结果
if (0==x && 0==y) return 1;
n=abs(x)>abs(y)?abs(x):abs(y); //确定圈数
s=(n*2-1)*(n*2-1); //计算上圈最后一个值,为2n-1的平方
//核心代码
if (x==n && y!=-n) val=s+n+y; // 第1列,s+n后为中间值,加减x或y调整
else if (y==n && x!=n) val=s+n-x+n*2; // 第2列,第二列加上2n调整,2n就是第一列的几个数
else if (x==-n && y!=n) val=s+n-y+n*2*2;// 第3列,第三列加上2个2n
else if (y==-n && x!=-n) val=s+n+x+n*2*3;// 第4列,同样的,第四列加3个2n
return val;
}
void main(void)
{
int i,j;
for(i=-4;i<=4;++i)
{
for(j=-4;j<=4;++j)
{
cout<<getNum(j,i)<<"\t";
}
cout<<endl;
}
cout<<endl<<getNum(1,-1)<<endl;
cout<<endl<<getNum(-1,1)<<endl;
}
相关文章推荐
- 螺旋队列C++代码实现实例及运行结果
- 螺旋队列C++代码实现实例及运行结果
- 螺旋队列C++代码实现实例及运行结果
- C++面试题之螺旋队列
- 数字螺旋方阵C++实现
- c++面试准备之螺旋队列
- 螺旋队列C++代码实现实例及运行结果
- C/C++学习笔记22:螺旋队列
- 螺旋队列C++代码实现实例及运行结果
- c++面试准备之螺旋队列
- 螺旋队列C++代码实现实例及运行结果
- 螺旋队列C++代码实现实例及运行结果
- C++螺旋队列算法分析
- 螺旋队列C++代码
- 用C++实现顺时针增加的螺旋队列
- C++ 螺旋队列
- 螺旋队列C++代码实现实例及运行结果
- 螺旋队列C++代码实现实例及运行结果
- 螺旋队列C++代码实现实例及运行结果
- 螺旋队列C++代码实现实例及运行结果