一道面试题(机考),求数据结构和算法高手。。。
有1-200个数字,将他们逆时针排序,放在数组10*20中,然后输出来,怎么弄哇。。
这个题目的算法思路我很清楚,但是代码就是敲不出来。。。。。。。求高手指点下。。。。。源代码给给我参考下,不甚感激。。。这道题没做出来,后来HR给我找了个懂技术的人,说是给我知道。。。但是,他得思路一开始也走叉了。后来,我将自己的思路告诉他。。。。。。之后,他就问了我其他的问题,丝毫没有说这道题该怎么敲代码。。。。汗,我也不好继续追问。。。。。
[解决办法]
http://acm.nyist.net/JudgeOnline/problem.php?pid=33
#include <stdio.h>#include <iostream>using namespace std;#define MAXN 110int a[MAXN][MAXN]={0};int main(){ int n,x,y,t=1; cin>>n; a[x=0][y=n-1]=1; while(t<n*n) { while(x+1<n&&!a[x+1][y]) a[++x][y]=++t; while(y-1>=0&&!a[x][y-1]) a[x][--y]=++t; while(x-1>=0&&!a[x-1][y]) a[--x][y]=++t; while(y+1<n&&!a[x][y+1]) a[x][++y]=++t; } for(int i=0;i<n;i++) { for(int j=0;j<n;j++) cout<<a[i][j]<<" "; cout<<endl; } return 0;}