花落


私信TA

用户名:aaa888ii

访问量:25591

签 名:

我胡汉三又回来了!

等  级
排  名 356
经  验 5286
参赛次数 3
文章发表 41
年  龄 18
在职情况 学生
学  校 东莞理工学院
专  业 软件工程

  自我简介:

喵喵喵?

解题思路:
递归来做很简单
注意事项:

参考代码:

#include<iostream>
using namespace std;
int Count = 0;
int k=0; //循环次数
void dfs(int** sz,int m,int n,int i,int j)  //总长度当前位置 
{
	if(k!=0){
	     cout<<sz[i][j];
		 i++;
		 Count--;
		 if(Count==0)return;
		 else cout<<' ';
	}
	else k=1;
	 for(int t=0;t<m-1;t++)
	 {
		 cout<<sz[i][j];
		 i++;
		 Count--;
		 if(Count==0)return;
		 else cout<<' ';
	 }
	 for(int t=0;t<n-1;t++)
	 {
		 cout<<sz[i][j];
		 j++;
		 Count--;
		 if(Count==0)return;
		 else cout<<' ';
	 }
	 for(int t=0;t<m-1;t++)
	 {
		 cout<<sz[i][j];
		 i--;
		 Count--;
		 if(Count==0)return;
		 else cout<<' ';
	 }
	 for(int t=0;t<n-2;t++)
	 {
		 cout<<sz[i][j];
		 j--;
		 Count--;
		 if(Count==0)return;
		 else cout<<' ';
	 }
	 dfs(sz,m-2,n-2,i,j);
}
int main()
{
	int m,n;
	cin>>m>>n;
	Count=m*n;
	int **sz;
	sz = new int* [m];
	for(int i=0;i<m;i++) sz[i] = new int [n];
	for(int i=0;i<m;i++)
	 {
		 int j=0;
		  for(;j<n;j++)
		  {
	         scanf("%d",&sz[i][j]);
		  }
	}
	dfs(sz,m,n,0,0);
	//system("pause");
	return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »