• 蛇形填数


    在 n 阶方阵填入1 ,2 ,3 ,.... , n*n ,要求填成蛇形。例如, n = 4 时方阵为:

    10   11   12   1

     9   16    13   2

     8   15    14   3

     7    6      5    4

    代码如下

    #include<iostream>
    using namespace std;

    #define maxn 8
    int num[maxn][maxn] = {0};                // 创建一个二维数组,并初始化

    int main()
    {
        int n;                //确定 n 阶方阵
        
        while (cin>>n)
        {
            int j = 1;
            int l = n;
            int k = n/2;        //方阵的环数 (不包括 迹 为奇数的方阵的中间那个数字)
        
            while (k)
            {
                for (int i = n-l; i < l-1; i++)            //赋值
                    num[i][l-1] = j++;
                for (int i = l-1; i > n-l; i--)
                    num[l-1][i] = j++;
                for (int i = l-1; i > n-l; i--)
                    num[i][n-l] = j++;
                for (int i = n-l; i < l-1; i++)
                    num[n-l][i] = j++;
                
                l = l-1;                    // 使方阵环内缩(即环向中心靠拢)
                k--;                       // 限制环数,防止重复
            }
            
            if (n % 2 == 1)                    //如果迹为奇数,确定方阵中心的数字
                num[n/2][n/2] = j;
            for (int i = 0; i < n; i++)        //输出
            {
                for (int j = 0; j < n; j++)
                    printf("%3d",num[i][j]);
                    cout<<endl;
            }    
        }
        return 0;
     }

  • 相关阅读:
    IOS数据持久化之归档NSKeyedArchiver
    Java中导入、导出Excel
    IOS开发中多线程的使用
    深入分析动态管理Fragment
    IOS开发之数据sqlite使用
    如何在Eclipse和Tomcat的Debug过程中启用热部署
    在PHP中无法连接Memcached的解决办法
    Apache mod_rewrite规则重写的标志一览
    Java多线程中run(), start(), join(), wait(), yield(), sleep()的使用
    Centos5.8下编译安装PHP5.4和memcached, phalcon, yaf, apc
  • 原文地址:https://www.cnblogs.com/go-alltheway/p/13345616.html
Copyright © 2020-2023  润新知