zoukankan      html  css  js  c++  java
  • 螺旋数组实现

    n=4

    1 2 3 4
    12 13 14 5
    11 16 15 6
    10 9 8 7

    n=5

    1 2 3 4 5
    16 17 18 19 6
    15 24 25 20 7
    14 23 22 21 8
    13 12 11 10 9

    简单的根据规律累加数字即可,注意几个边界条件的控制(向右 ,向下, 向左,向上的处理顺序)

    如果把(向右 ,向下, 向左,向上的处理顺序)作为一次处理逻辑,那么一共进行 n/2次循环即可。

     1 #include <iostream>
     2 #include <cstring>
     3 using namespace std;
     4 
     5 int a[100][100]={0};
     6 
     7 void fun(int n)
     8 {
     9      
    10      int c =1,i,j;
    11      for(i=0;i<n;i++)
    12        for(j=0;j<n;j++)
    13           a[i][j]=0;
    14      for(i=0;i<n/2;i++)
    15      {
    16          for(j=0;j<n-i; j++)
    17          {
    18              if(a[i][j]==0)
    19                 a[i][j] =c++;
    20          }
    21          for(j=i+1;j<n-i;j++)
    22          {
    23             if(a[j][n-i-1]==0)
    24                 a[j][n-i-1]= c++;
    25          }
    26          for(j = n-i-1;j>i;j--)
    27          {
    28             if(a[n-i-1][j]==0)
    29                a[n-i-1][j]=c++;
    30          }
    31          for(j=n-i-1;j>i;j--)
    32             if(a[j][i]==0)
    33                a[j][i]=c++;
    34      }
    35      if(n%2==1) a[n/2][n/2] =c;
    36      
    37      for(i=0;i<n;i++)
    38      {
    39         for(j=0;j<n;j++)
    40         {
    41            cout<<a[i][j]<<"	";
    42         }
    43         cout<<endl;
    44      }
    45 }
    46 
    47 int main()
    48 {
    49     int n;
    50     while(cin>>n)
    51     {
    52         fun(n);
    53         cout<<"---------------------------------"<<endl;
    54     }
    55     return 0;
    56 }

    结果如图所示:

  • 相关阅读:
    Memcached简介
    TP5 volist
    Getting command line access to PHP and MySQL running MAMP on OSX
    PHP use
    PHP 命名空间(namespace)
    mac 使用 pf 做端口转发
    微信测试帐号如何设置URL和Token,以及相关验证的原理
    ionic开发笔记
    Eclipse下配置Maven
    css引用第三方字体库
  • 原文地址:https://www.cnblogs.com/double-win/p/3641790.html
Copyright © 2011-2022 走看看