zoukankan      html  css  js  c++  java
  • 【C++小白成长撸】--N阶幻方(魔阵)矩阵

    解决方法:1.第一个元素放在第一行中间一列

         2.下一个元素存放在当前元素的上一行、下一列。

         3.如果上一行、下一列已经有内容,则下一个元素的存放位置为当前列的下一行。

    在找上一行、下一行或者下一列的时候,必须把这个矩阵看成是回绕的。

     

    代码中,为了判断,当前位置是否有元素,我引入与魔方矩阵规模相同的另一个矩阵,如果魔方矩阵一个位置不为空,相应另一个矩阵那个位置为1,否则为0.

     1 /*程序的版权和版本声明部分:
     2 **Copyright(c) 2016,电子科技大学本科生
     3 **All rights reserved.
     4 **文件名:N阶魔方矩阵
     5 **程序作用:N阶魔方矩阵
     6 **作者:Amoshen
     7 **完成日期:2016.10.27
     8 **版本号:V1.0
     9 */
    10 #include <iostream>
    11 
    12 using namespace std;
    13 
    14 #define MAX_SIZE 100
    15 
    16 int main(void)
    17 {
    18     int ROW,CIE,i,j,N,ROW1,CIE1;
    19     int MAGIC[MAX_SIZE][MAX_SIZE] = {0};
    20     int b[MAX_SIZE][MAX_SIZE] = {0};
    21 
    22     cout <<"N阶中N只能是奇数!! warning" <<endl;
    23     cout << "输入魔阵阶数N:";
    24     cin >> N;
    25     //实现魔阵的填充
    26 
    27     ROW = 0;
    28     CIE = (N - 1)/2;
    29 
    30     MAGIC[ROW][CIE] = 1;
    31     b[ROW][CIE] = 1;
    32 
    33     for(i = 2;i <= (N*N);i++)//
    34     {
    35         ROW1 = ROW - 1;
    36         CIE1 = CIE + 1;
    37 
    38         if(ROW1 < 0)
    39         {
    40             ROW1 = N - 1;
    41         }
    42         if(CIE1 > (N - 1))
    43         {
    44             CIE1 = 0;
    45         }
    46 
    47         if(b[ROW1][CIE1] == 0)
    48         {
    49             ROW = ROW1;
    50             CIE = CIE1;
    51             MAGIC[ROW][CIE] = i;
    52             b[ROW][CIE] = 1;
    53         }
    54         else
    55         {
    56             ROW = ROW + 1;
    57             if(ROW == N)
    58             {
    59                 ROW = 0;
    60             }
    61             MAGIC[ROW][CIE] = i;
    62             b[ROW][CIE] = 1;
    63         }
    64     }
    65 
    66     cout << "N阶魔阵的输出实现:" <<endl;
    67     //N阶魔阵的输出实现
    68     for(i = 0;i < N;i++)
    69     {
    70         for(j = 0;j < N;j++)
    71         {
    72             cout << MAGIC[i][j] << '	';
    73         }
    74         cout << endl;
    75     }
    76 
    77     return 0;
    78 }
  • 相关阅读:
    Python-流程控制之if判断
    Python-流程控制之循环
    Python-基本运算符
    Python-基本运算符
    Python-数据类型的基本使用
    python2中与用户交互
    Python-内存管理
    vue 替换表格中的数据
    实现单例的三个方法
    django----框架介绍
  • 原文地址:https://www.cnblogs.com/zpc-uestc/p/6006042.html
Copyright © 2011-2022 走看看