码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 经典矩阵试题(一)


    在这里插入图片描述


    📘北尘_:个人主页

    🌎个人专栏:《Linux操作系统》《经典算法试题 》《C++》 《数据结构与算法》

    ☀️走在路上,不忘来时的初心

    文章目录

    • 一、回型矩阵
      • 1、题目介绍
      • 2、思路讲解
      • 3、代码实现
      • 4、结果
    • 二、蛇型矩阵
      • 1、题目介绍
      • 2、思路讲解
      • 3、代码实现
      • 4、结果
    • 总结


    一、回型矩阵

    1、题目介绍

    在这里插入图片描述

    2、思路讲解

    回型矩阵就是顺时针输入1到n的数字,这个题的思路是,定义x方向y方向的移动的,首先是x不变y加1,然后x加1y不变,然后x不变y减1,最后x减1 y不变。
    然后循环注意边界问题,便可。

    3、代码实现

    #include 
    using namespace std;
    int main() {
        int n;
        cin>>n;
        int dx[]={0,1,0,-1};
        int dy[]={1,0,-1,0};
        int ans[20][20]={0};
        for(int x=0,y=0,d=0,k=1;k<=n*n;k++)
        {
            ans[x][y]=k;
            int a=x+dx[d],b=y+dy[d];
            if(a<0 || a>=n || b<0 || b>=n || ans[a][b])
            {
                d=(d+1)%4;
                a=x+dx[d],b=y+dy[d];
            }
            x=a,y=b;
        }
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<n;j++)
            {
               cout<<ans[i][j]<<' ';
            }
            cout<<endl;     
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    4、结果

    在这里插入图片描述


    二、蛇型矩阵

    1、题目介绍

    在这里插入图片描述

    2、思路讲解

    我们可以发现i+j = n-1的条件,再发现以i+j = n - 1为分界线,前面的斜线分别是i + j = n-2,i+j = n-3…后面的分别是i+j = n,i+j = n+1…以此类推,让count= i+j,count从0开始再进行累加,直到2 * n-2结束,count为奇数的时候是左下,偶数的时候右上。

    3、代码实现

    #include 
    using namespace std;
    int main() {
    	int n;
    	cin>>n;
    	int ans[1000][1000]={0};
    	int count=0;
    	int sum=1;
    	while(count<=n*2-2)
    	{
    		for(int i=0;i<n;i++)
    		{
    			for(int j=0;j<n;j++)
    			{
    				if(i+j==count)
    				{
    					if(count%2==0)
    					{
    						ans[j][i]=sum++;
    					}
    					else 
    					{
    					ans[i][j]=sum++;
    					}
    				}
    			}
    		}
    		count++;
    	}
    	for(int i=0;i<n;i++)
    	{
    		for(int j=0;j<n;j++)
    		{
    			cout<<ans[i][j]<<' ';
    		}
    		cout<<endl;
    	}
    	return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    4、结果

    在这里插入图片描述


    总结

    蛇形矩阵是一种矩阵排列方式,它的排列方式类似于蛇形爬行。这种排列方式可以用于数字、字母等的排列,也可以用于图像的展示。在计算机科学中,蛇形矩阵也被广泛应用于图像处理、数据压缩等领域。

    回形方阵是一种排列方式,通常用于将一段文字或图形排列成一个正方形或长方形,使得文字或图形在正方形或长方形中呈现出回文的形式。回形方阵在古代中国被广泛应用于诗歌、文章、书法等领域,是一种独特的艺术形式。
    回形方阵的排列方式通常是从中心点开始,按照顺时针或逆时针方向依次填充文字或图形,直到填满整个正方形或长方形。在填充过程中,需要注意每一行和每一列的长度应该相等,以保证最终呈现出的形状是一个完整的正方形或长方形。
    回形方阵的应用范围很广,除了在古代文学艺术中的应用外,现代人们也常常将其用于设计海报、广告、宣传画等场合,以达到更加独特、有趣的效果。

  • 相关阅读:
    SpringMVC 03: 请求和响应的乱码解决 + SpringMVC响应Ajax请求
    神经网络在通信中的应用,神经网络及其应用
    【海思SS626 | 开发环境】编译整个SDK全过程以及问题汇总
    lambda表达式【C++】
    【SpringBoot实战系列】Sharding-Jdbc实现分库分表到分布式ID生成器Snowflake自定义wrokId实战
    Linux串口信息查询
    趣谈操作系统原理,存储管理之页式、段式、段页式存储
    A40I工控主板(SBC-X40I)网络接口测试
    kunpeng的aarch64架构cpu、openeuler系统、昇腾服务器适配文档转换功能(doc转docx、ppt转pptx)
    Tensorflow Lite从入门到精通
  • 原文地址:https://blog.csdn.net/2301_78995005/article/details/134264467
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号