# 洛谷P5725 【深基4.习8】求三角形

【深基4.习8】求三角形

题目描述

模仿例题,打印出不同方向的正方形,然后打印三角形矩阵。中间有个空行。

输入格式

输入矩阵的规模,不超过 9 。

输出格式

输出矩形和正方形

样例 #1

样例输入 #1

4

样例输出 #1

01020304
05060708
09101112
13141516

      01
    0203
  040506
07080910

题目解析

题目大意:

  • 题目要求输入一个不大于9的自然数,程序输出一个4×4的矩阵(每个数占两位依次排列)和一个底4高4的下三角形(每个数占两位依次排列),两图形间含一空行。

题目分析:

  1. 设输入的数为n,因n<9,故所有数均不会超过两位,问题的处理难度降低。

  2. 观察两个图形,矩形中每行四个数字,每个数字占两位;三角形中每行依次增加一个数字,且第k行前有2*(n-k)个空格。

  3. 对于矩形来说,输出1~n2共n2个数,对于三角形来说输出sum(1+2+···+n)个数,我们可以不考虑到底输出到了多少,只需要按照规则输出即可。

  4. 解决思路:可以使每个数字格式化输出两位数;对于矩形,当满足四个时输出一次回车;对于三角形,

    1. 思路1:每行输出2 * (n-k)个空格后输出一个格式化后的数,输出范围是1~2 *(n+1) ;
    2. 思路2:把每行当做一个要处理的整体,定义一个count计数器,按照规律输出并自增1 。对于这个下三角形,观察其特点:每行四个整体,为两个空格或一个两位数,那么便有:第一行有前三个是两个空格,最后一位是两位格式化的count。

代码题解

    #include <iomanip>
    #include <iostream>
    using namespace std; 


    int main() 
    {
    int n;

    cin>>n;//输入行数 

    if(n>5||n<0)//异常处理 
    {
	    return 0;
    }

    else
    {
	    for(int i=1;i<n*n+1;i++)//从1到n^2输出
	    {
		    cout<<setfill('0')<<setw(2)<<i;
		    
		    if(i%n==0)//每n个数换一次行
		    {
			    cout<<endl;
		    }
	    }
	    
	    cout<<endl;
	    
	    int count=1;//三角形上每位要依次输出的数字
	    
	    for(int j=0;j<n;j++)//在共n行中
	    {
		    for(int k=0;k<n;k++)//在每行的n个数中
		    {
			    if(k<(n-j-1))//如果是下三角形之外的部分(比如第三行有一个部分是空格部分,三个部分是数字,则就有4-2-1=1个空格部分,且每个部分内是两个空格
			    {
				    cout<<"  ";
			    } 
			    else 
			    {
				    cout<<setfill('0')<<setw(2)<<count;//输出在本位置的数字
				    
				    count++;
			    }
			    
		    }
		    cout<<endl;
	    }
    }
    
    return 0;
    }
    

解法2:

    #include <iostream>

    using namespace std;

    int main()
    {
    int n,x=1;
    
    cin >> n;

    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (x < 10)//当x不足两位数时用0补足
            {
                cout << "0";
                cout << x;
                x++;
            }
            else
            {
                cout << x;
                x++;
            }
        }
        cout << endl;
    }
    cout << endl;
        x = 0;
        for (int i = 0; i < n; ++i) 
        {
            for (int j = 0; j < (n - i - 1) * 2; ++j, cout << " ");//控制每行数字输出前面的空格数量的。在斜向上的数字三角形中,每一行数字输出之前都会有一定数量的空格,而这些空格的数量是逐渐减少的(每行减少2个)。
            
            for (int k = 0; k < (i + 1); ++k, ++x, printf("%02d", x));//来输出斜向上的数字三角形中的数字的。在斜向上的数字三角形中,每一行数字的数量是逐渐增加的(每行增加1个)。这个循环控制每行输出的数字数量,并且利用printf("%02d", x)来格式化输出数字,确保输出的数字始终占据两位位置,不足两位时在前面补零。++x用于将要输出的数字递增。
            
            cout << endl;
        }
    return 0;

    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/373087.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker容器化扫描SonarScanner

文章目录 1.SonarQube创建项目1.1 手工创建1.2 创建web_test_learning1.3 选择本地1.4 点击创建1.5 点击继续1.6 项目总揽 2.SonarScanner2.1 获取镜像2.2 启动扫描2.3 页面结果 3.SonarLint3.1 下载SonarLint插件3.2 配置连接到SonarQube3.3 在SonarQube页面“用IDE打开”3.4 …

今日arXiv最热NLP大模型论文:微软提出SliceGPT,删除25%模型参数,性能几乎无损

引言&#xff1a;探索大型语言模型的高效压缩方法 随着大型语言模型&#xff08;LLMs&#xff09;在自然语言处理领域的广泛应用&#xff0c;它们对计算和内存资源的巨大需求成为了一个不容忽视的问题。为了缓解这些资源限制&#xff0c;研究者们提出了多种模型压缩方法&#…

《短链接--阿丹》--技术选型与架构分析

整个短链接专栏会持续更新。有兴趣的可以关注一下我的这个专栏。 《短链接--搭建解析》--立项+需求分析文档-CSDN博客 阿丹: 其实整套项目中的重点,根据上面的简单需求分析来看,整体的项目难题有两点。 1、快速的批量生成短链,并找到对应的存储。 并且要保持唯一性质。…

java基本知识详解

八大基本数据类型 java的数据类型可以说很简洁&#xff0c;只有整型&#xff0c;浮点型&#xff0c;字符型&#xff0c;和布尔型四大种&#xff0c;八小种基本类型。 整型 byte&#xff1a;-2^7 ~ 2^7-1&#xff0c;即-128 ~ 127。1字节。 short&#xff1a;-2^15 ~ 2^15-…

SpringIOC之support模块PropertySourcesPlaceholderConfigurer

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

app对接优量汇收益如何?

优量汇作为国内头部的广告联盟&#xff0c;开发者在对接时要注意哪些方面&#xff1f; AdSet官网 | 聚合SDK广告变现平台-上海神蓍信息科技有限公司 一、优量汇优势&#xff1a; &#xff08;1&#xff09;快速变现&#xff0c;节省对接时间 1、快速变现&#xff0c;节省接…

router路由跳转的两种模板

<router-link><router-link/> <router-view><router-view/> link &#xff1a;链接&#xff0c;联系 view&#xff1a;指看见展现在人们面前的、可以稳定地进行详细审视的事物 将语境拉回到router里&#xff0c;抽象概括一下 router-link就是一个…

Git命令窗口:创建一个.bashrc文件,别名实现git log (代替冗余的指令)查询提交修改日志功能

在我们的用户下创建一个.bashrc文件&#xff0c;然后添加如下代码。即可实现我们命令窗口由于每次想要看到好的效果而输入几条指令的问题。 这里我们就只需要使用 git-log 代替我们的git log。这样在命令窗口看到的效果就清晰明了。

MySQL进阶45讲【12】为什么你的MySQL偶尔会卡一下

1 前言 平时的工作中&#xff0c;不知道大家有没有遇到过这样的场景&#xff0c;一条SQL语句&#xff0c;正常执行的时候特别快&#xff0c;但是有时也不知道怎么回事&#xff0c;它就会变得特别慢&#xff0c;并且这样的场景很难复现&#xff0c;它不只随机&#xff0c;而且持…

Spring Web Header 解析常见错误

在上一章&#xff0c;我们梳理了 URL 相关错误。实际上&#xff0c;对于一个 HTTP 请求而言&#xff0c;URL 固然重要&#xff0c;但是为了便于用户使用&#xff0c;URL 的长度有限&#xff0c;所能携带的信息也因此受到了制约。 如果想提供更多的信息&#xff0c;Header 往往…

树莓派-Ubuntu22.04

树莓派 1 安装Ubuntu系统2 ssh登录3 配置3.1 安装软件3.2 换源3.3 安装桌面3.4 开机脚本 1 安装Ubuntu系统 通过制作sdk&#xff0c;使系统在sdk中运行&#xff1a; 下载制作软件&#xff1a;https://www.raspberrypi.com/software/ 下载Ubuntu镜像&#xff1a;https://cn.ub…

PMP证书的价值对哪些人更有用

在软考和PMP的对比中&#xff0c;许多网友认为软考证书比PMP证书更有含金量&#xff0c;大部分人是从持有证书后获得的实质便利来看的。虽然PMP证书在落户、退税等方面不及软考证书&#xff0c;但也有自身独有的价值。 一&#xff0c;PMP证书作用一览 PMP证书不限制行业、覆盖…

简单的TcpServer(英译中)

目录 一、TCP socket API 详解1.1 socket()1.2 bind()1.3 listen()1.4 accept()1.5 connect 二、TcpServer&#xff08;英译中&#xff09;2.1 TcpServer.hpp2.2 TcpClient.cc2.3 Task.hpp2.4 Thread.hpp2.5 ThreadPool.hpp2.6 makefile2.7 Main.cc2.8 log.hpp2.9 Init.hpp2.10…

Vue - 快速入门(一)

阅读文章可以收获&#xff1a; 1. 明白什么是vue 2. 如何创建一个vue实例 3. vue中的插值表达式如何使用 4. 如何安装vue的开发者工具 Vue 概念 什么是vue&#xff1f; Vue 是一个用于 构建用户界面 的 渐进式 框架 框架优点&#xff1a;大大提升开发效率 (70%↑) 缺点…

Spring Boot3,启动时间缩短 10 倍!

前面松哥写了一篇文章和大家聊了 Spring6 中引入的新玩意 AOT&#xff08;见Spring Boot3 新玩法&#xff0c;AOT 优化&#xff01;&#xff09;。 文章发出来之后&#xff0c;有小伙伴问松哥有没有做性能比较&#xff0c;老实说&#xff0c;这个给落下了&#xff0c;所以今天…

2024最新版MySQL安装使用指南

2024最新版MySQL安装使用指南 Installation and Usage Guide to the Latest Oracle MySQL in 2024 By JacksonML 1. MySQL简介 MySQL是世界上最受欢迎的开源数据库之一。MySQL属于Oracle&#xff08;甲骨文&#xff09;公司的产品&#xff0c;其具有强大的功能&#xff0c;但…

Vue-53、Vue技术vuex使用

vuex 是什么 1、概念 专门在Vue 中实现集中式状态&#xff08;数据&#xff09;管理的一个Vue 插件&#xff0c;对vue 应用中多个组件的共享状态进行集中式的 管理&#xff08;读/写&#xff09;&#xff0c;也是一种组件间通信的方式&#xff0c;且适用于任意组件间通信。2、…

《动手学深度学习(PyTorch版)》笔记7.5

注&#xff1a;书中对代码的讲解并不详细&#xff0c;本文对很多细节做了详细注释。另外&#xff0c;书上的源代码是在Jupyter Notebook上运行的&#xff0c;较为分散&#xff0c;本文将代码集中起来&#xff0c;并加以完善&#xff0c;全部用vscode在python 3.9.18下测试通过&…

rclone基础命令解析及实战

rclone命令解析及实战 1 rclone介绍&#xff1a;远程同步工具 rclone是一个开源的远程数据同步工具&#xff0c;由Golang编写&#xff0c;旨在在不同平台的文件系统和多种类型的对象存储产品之间提供数据同步功能。 它支持超过 40 种不同的云存储服务&#xff0c;包括 Amazon S…

常用Hallmark及KEGG、GO基因查询

文献&#xff1a;The Molecular Signatures Database (MSigDB) hallmark gene set collection - PMC (nih.gov) GSEA | MSigDB | Browse Human Gene Sets (gsea-msigdb.org)通过msigdb数据库可以查看各个Hallmark、KEGG、GO具体包含的基因细节。 Hallmark nameProcess categor…