fork(1) download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5. vector< vector<int> > w(100, vector<int>(100));
  6. int n,x=0,y=0,m=1;
  7.  
  8. void f1(int n){
  9. for(int i=0;i<n;i++){
  10. w[x][y+i]=m;
  11. m++;
  12. };
  13. x++;y+=n-1;
  14. };
  15.  
  16. void f2(int n){
  17. for(int i=0;i<n;i++){
  18. w[x+i][y]=m;
  19. m++;
  20. };
  21. x+=n-1;y--;
  22. };
  23.  
  24. void f3(int n){
  25. for(int i=0;i<n;i++){
  26. w[x][y-i]=m;
  27. m++;
  28. };
  29. x--;y-=n-1;
  30. };
  31.  
  32. void f4(int n){
  33. for(int i=0;i<n;i++){
  34. w[x-i][y]=m;
  35. m++;
  36. };
  37. x-=n-1;y++;
  38. };
  39.  
  40. void out(){
  41. for(int i=0;i<n;i++){
  42. for(int j=0;j<n;j++)cout<<w[i][j]<<' ';
  43. cout<<endl;
  44. };
  45. };
  46.  
  47. int main(){
  48. int k;
  49. cin>>n;
  50. for(int i=0;i<=(n-1)*2;i++){
  51. k=n-(i+1)/2;
  52. if(i%4==0)f1(k);
  53. if(i%4==1)f2(k);
  54. if(i%4==2)f3(k);
  55. if(i%4==3)f4(k);
  56. };
  57. out();
  58. return 0;
  59. }
  60.  
Success #stdin #stdout 0s 3464KB
stdin
3
stdout
1 2 3 
8 9 4 
7 6 5