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

  • 相关阅读:
    java NIO的基本用法
    BufferedReader源码分析
    FileInputStream读中文乱码问题
    Java使用IO流对同一个文件进行读写操作
    php表格--大数据处理
    tp5--模型关联
    tp5 -- join注意事项
    表单外部提交
    网站防止sql注入
    微信网页授权报code been used, hints: [ req_id: XYv1Ha07042046 ]
  • 原文地址:https://www.cnblogs.com/go-alltheway/p/13345616.html
Copyright © 2011-2022 走看看