#include <iostream>
#include <string>
using namespace std;
#define abs(a) ((a)>0?(a):(-a))
#define max(a,b) ((a)>(b)?(a):(b))
int spiralval(int x,int y)
{
int t = max(abs(x),abs(y));
int vc = (t*2+1)*(t*2+1);
int u;
if ( y == -t) //分别判断,点落在该圈4条边的哪条边上
u = vc+(x+y);
else if (x == -t)
u = vc+(3*x-y);
else if (y == t)
u = vc + (-x - 5*y);
else
u = vc+(-7*x+y);
return u;
}
int main()
{
int x,y;
cout << endl;
for(y=-5;y<=5;y++)
{
for(x=-5;x<=5;x++)
printf("%5d",spiralval(x,y));
printf("/n");
}
cin.get();
return 0;
}
本文介绍了一个用于计算螺旋坐标系中特定点数值的C++程序。该程序定义了一个名为spiralval的函数,输入为整数坐标(x, y),输出对应于螺旋坐标系中的数值。通过一系列条件判断确定坐标点位于螺旋的哪一侧,并据此计算出对应的螺旋值。
405

被折叠的 条评论
为什么被折叠?



