#BC133回型矩阵

简介: #BC133回型矩阵

BC133回型矩阵

代码

//回型矩阵
#include<stdio.h>
int main()
{
  int arr[20][20], n;
  printf("请输入n的值:\n");
  scanf_s("%d", &n);
  int up = 0, left = 0, right = n - 1, down = n - 1;
  int x = 1;
  while (x <= n * n)
  {
    for (int i = left; i <= right; i++)
    {
      arr[up][i] = x++;
    }
    up++;
    for (int i = up; i <= down; i++)
    {
      arr[i][right] = x++;
    }
    right--;
    for (int i = right; i >= left; i--)
    {
      arr[down][i] = x++;
    }
    down--;
    for (int i = down; i >= up; i--)
    {
      arr[i][left] = x++;
    }
    left++;
  }
  //遍历
  for (int i = 0; i < n; i++)
  {
    for (int j = 0; j < n; j++)
    {
      printf("%d\t", arr[i][j]);
    }
    printf("\n");
  }
  return 0;
}

分析

其思想就是按照上–右—下—左----的顺序一圈再一圈的顺序给二维数组赋值,每次处理完一条边后要改变边界值得大小,最后打印。

主要考察的就是对于边界情况的判断,需要建立 n * n 的矩阵 arr 存储值,并且声明一个变量 k ,随着循环自增,每次循环的 k 值存储在 arr 内,最后再将 arr 数组按行打印即可。 while 循环的终止条件即为 k > n * n,并且要注意四个 for 循环中,必须有两个 for 循环(分别为左右循环和上下循环)的终止条件取等号,目的是确保能够到达循环终止前最后一个会使边界重叠的位置。

相关文章
编写一个程序,将下面的一段文本中的各个单词的字母顺序翻转“To be or not to be“,将变成“oT eb ro ton ot eb“。
编写一个程序,将下面的一段文本中的各个单词的字母顺序翻转“To be or not to be“,将变成“oT eb ro ton ot eb“。
215 0
|
存储
UFC719AE01 3BHB003041R0101 执行整数运算逐位逻辑运营
UFC719AE01 3BHB003041R0101 执行整数运算逐位逻辑运营
112 0
UFC719AE01 3BHB003041R0101 执行整数运算逐位逻辑运营
|
机器学习/深度学习 vr&ar
CF1561D Up the Strip (整除分块 dp 因子)
CF1561D Up the Strip (整除分块 dp 因子)
109 0
CF1561D Up the Strip (整除分块 dp 因子)
矩阵的初等变换和等价
矩阵的初等变换和等价
256 0
矩阵的初等变换和等价
AC Leetcode 238. 除自身以外数组的乘积
AC Leetcode 238. 除自身以外数组的乘积
52 0
|
Java
Java部分A+B正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。现给定A、DA
Java部分A+B正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。现给定A、DA
120 0
082.具有abcd=(ab+cd)2性质的数
082.具有abcd=(ab+cd)2性质的数
110 0
TF之AE:AE实现TF自带数据集数字真实值对比AE先encoder后decoder预测数字的精确对比—daidingdaiding
TF之AE:AE实现TF自带数据集数字真实值对比AE先encoder后decoder预测数字的精确对比—daidingdaiding
找出四位整数 abcd 中满足 (ab+cd)*(ab+cd)=abcd 的数。例如: (20+25)*(20+25) = 2025
找出四位整数 abcd 中满足 (ab+cd)*(ab+cd)=abcd 的数。例如: (20+25)*(20+25) = 2025
548 0