zoukankan      html  css  js  c++  java
  • 蛇形填数

    在 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;
     }

  • 相关阅读:
    一个秒杀系统的设计
    2018年终总结-从我所在的团队回首一年技术变迁
    温习LOGO语言
    微信公众平台配置-笔记
    Spring mongotemplate使用
    三种方法实现MNIST 手写数字识别
    Python 实现0-1背包
    Python 实现快速排序和随机快速排序
    Spring+SpringMVC+Mybatis搭建的网站的处理流程总结
    Mybatis功能架构及执行流程
  • 原文地址:https://www.cnblogs.com/go-alltheway/p/13345616.html
Copyright © 2011-2022 走看看