#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 循环(分别为左右循环和上下循环)的终止条件取等号,目的是确保能够到达循环终止前最后一个会使边界重叠的位置。

相关文章
|
算法 搜索推荐 数据挖掘
AB实验设计
AB实验的原理、优缺点及流程
1479 0
AB实验设计
|
机器学习/深度学习 人工智能
CF1496A Split it!(数学分析)
CF1496A Split it!(数学分析)
48 0
【BF算法】
BF 算法 BF 算法精讲 在学习到字符串的匹配问题时,了解到了BF算法和KMP算法。 对比这两个算法,先了解BF算法; 字符串匹配问题,比如说:有一个主串 “abbbcdef” , 子串 “bbc”,该问题就是在主串中查找子串。 肉眼可见,主串中的确存在子串bbc,返回值是子串在主串中第一次出现的首位置下标,也就是返回2. BF
|
人工智能 BI
cf 489B(贪心)
cf 489B(贪心)
98 0
ABB DSSR122 4899001-NK 可以产生更强的输出信号
ABB DSSR122 4899001-NK 可以产生更强的输出信号
ABB DSSR122 4899001-NK  可以产生更强的输出信号
|
算法
BF算法(具体应用)
模式匹配算法
254 0
BF算法(具体应用)
AC Leetcode 238. 除自身以外数组的乘积
AC Leetcode 238. 除自身以外数组的乘积
55 0
【CCCC】L3-006 迎风一刀斩 (30分),几何关系,找规律 (拼合多边形==斜边等价)
【CCCC】L3-006 迎风一刀斩 (30分),几何关系,找规律 (拼合多边形==斜边等价)
166 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
128 0