📄 一个题目.cpp
字号:
#include<iostream.h>
const int xsize=80;
const int ysize=25;
struct node
{
int xstep;
int ystep;
char *result;
};
void show(int n)
{
int size=(n+2)*(n+2),sum=0,step=n+1,pos=n+1;
char *point[xsize][ysize],down[3]="↓",up[3]="↑",right[3]="→",left[3]="←",kong[3]=" ";
node *list=new node[size];
for(int i=0;i<size;i++)
{
list[i].xstep=i+1;
list[i].ystep=1;
list[i].result=right;
if(sum<4)
{
if(i==n+1||i==2*(n+1)||i==3*(n+1))
{
list[i].result=kong;
sum++;
}
}
}
sum=0;
for(i=step;i<size&&step>=0;i=i+step)
{
for(int j=i+1;j<size;j++)
{
int temp=list[j].xstep;
list[j].xstep=list[i].ystep+list[i].xstep-list[j].ystep;
list[j].ystep=temp+list[i].ystep-list[i].xstep;
if(list[j].result==right)
list[j].result=down;
else
if(list[j].result==down)
list[j].result=left;
else
if(list[j].result==left)
list[j].result=up;
else
if(list[j].result==up)
list[j].result=right;
}
if(sum==2)
{
step--;
sum=0;
}
sum++;
}
for(i=0;i<ysize;i++)
for(int j=0;j<xsize;j++)
point[i][j]=kong;
for(i=0;i<size;i++)
point[list[i].ystep][list[i].xstep]=list[i].result;
for(i=0;i<=n+2;i++)
{
for(int j=0;j<=n+2;j++)
{
if(point[i][j]==kong)
cout<<" ";
else
cout<<point[i][j]<<" ";
}
cout<<endl<<endl;
}
delete []list;
}
void main()
{
int n;
cout<<"请输入n的值,n小于23!(因为屏幕大小限制)"<<endl;
cin>>n;
while(n>22)
{
cout<<"n太大!"<<endl;
cin>>n;
}
show(n);
cout<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -