• 蛇形填数


    在 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冒泡排序-选择排序-插入排序-使用API中文文档直接调用函数
    java数组回顾---线性查找最大值最小值---二分查找
    java万年历
    java基础易混点
    progressbar
    TabHost
    ExpandableListView
    AutoCompleteTextView
    GridView
    图像视图-ImageView
  • 原文地址:https://www.cnblogs.com/go-alltheway/p/13345616.html
Copyright © 2020-2023  润新知