7-2 等腰三角形-第九届蓝桥省赛-C组 (100 分)_Mark Young的博客-程序员宅基地

技术标签: c++  c语言  蓝桥杯  

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
const int N =305 ;
char a[N][N],c[N];
string s;
int main()
{
    
	s="";
	for(int i=1;i<=200;i++){
    
		s+=to_string(i);
	}
	int index=0;
	int n;
	cin>>n;
	int y=n;
	for(int i=0;i<n;i++) 
	{
    
	     
		for(int j=0;j<y;j++)
		{
    
			a[i][j]='.';
		}
		y+=1; //这么写会导致输出不可见字符(应该是这么说的)
	}
	int x=n,m;
	for(int i=0;i<n;i++) 
	{
    
		for(int j=0;j<n;j++)
		{
    
			if(j==x-1)
			{
    
				a[i][x-1]=s[index++];
				x--;					
			}	
		}
	}	
	for(int i=n-1,j=1;j<2*n-1;j++)
	{
    
		a[i][j]=s[index++];
	} 
	m=2*n-3;
	for(int i=n-2;i>0;i--) 
	{
    
		a[i][m]=s[index++];
	    m--;		
	}
	for(int i=0;i<n;i++) 
	{
    
	    y+=i;
		for(int j=0;j<y;j++)
		{
    
			cout<<a[i][j];
		}
		cout<<endl;
	}
}

请添加图片描述
如果你再试了之后发现这段代码有错误,100%正确答案就在下面。
上面这段代码是我没有优化时写的垃圾,如果这段垃圾在dev和cb里面输出的答案看上去正确的,在请教了大佬之后,进行了代码的优化

#include<bits/stdc++.h>
using namespace std;
const int N =305 ;
char a[N][N];
string s;
int main()
{
    
	for(int i=1;i<=200;i++){
    
		s+=to_string(i);//这个是string最奇妙的地方了
	}
	int index=0;
	int n;
	cin>>n;
	for(int i=0;i<n;i++) 
	{
         
		for(int j=0;j<n+i;j++)
		{
    
			a[i][j]='.';
		}
	}
	int x=n,m;
	for(int i=0;i<n;i++) 
	{
    
		a[i][x-1]=s[index++];//left 
		x--;					
	}	
	for(int i=n-1,j=1;j<2*n-1;j++)
	{
    
		a[i][j]=s[index++];//bottom
	} 
	m=2*n-3;
	for(int i=n-2;i>0;i--) 
	{
    
		a[i][m]=s[index++];//right
	    m--;		
	}
	for(int i=0;i<n;i++) 
	{
    
		for(int j=0;j<n+i;j++)//好久没写三角类的代码了,导致这个地方没想起来
		{
    
			cout<<a[i][j];
		}
		cout<<endl;
	}
	
}

上面两行的string转化代码参考了如下博客
https://blog.csdn.net/hzf0701/article/details/115598249

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_54374865/article/details/122673704

智能推荐

安装gradle-程序员宅基地

终端输入vim ~/.bashrc在打开的编辑器的后面添加两行:sudo vim /etc/profileGRADLE_HOME=/opt/gradle-1.9PATH=$GRADLE_HOME/bin:$PATHexport GRADLE_HOMEexport PATH这里GRADLE_HOME的路径自己决定,$PATH是代表原有环境变量的PATH。冒号:是分隔符,...

三方登录---新浪微博登陆_https://open.weibo.com/_故玖.9的博客-程序员宅基地

OAuth2.0授权认证oauth2.0是什么?OAuth(开放授权)是⼀个开放标准,允许⽤户让第三⽅应⽤访问该⽤户在某⼀⽹站上存储的私密的资源(如照⽚,视频,联系⼈列表),⽽⽆需将⽤户名和密码提供给第三⽅应⽤。Oauth2.0的四种授权模式?https://www.cnblogs.com/Innocent-of-Dabber/p/11009811.html隐式授权模式(Implicit Grant)授权码授权模式(Authorization code Grant)密码模式(Resour_https://open.weibo.com/

Kali linux 学习笔记(九)被动信息收集——其他(cupp、metadata、foca、recon-ng) 2020.2.19_kali查看exif信息-程序员宅基地

其余的一些被动信息收集方法包括cupp、metadata、foca、recon-ng_kali查看exif信息

【无人驾驶系系列八】CNN在无人驾驶中的应用-程序员宅基地

无人驾驶的感知部分作为计算机视觉的领域范围,也不可避免地成为CNN发挥作用的舞台。本文是无人驾驶技术系列的第八篇,深入介绍CNN(卷积神经网络)在无人驾驶3D感知与物体检测中的应用。CNN简介卷积神经网络(Convolutional Neural Network,CNN)是一种适合使用在连续值输入信号上的深度神经网络,比如声音、图像和视频。它的历史可以回溯到1968年,Hubel和Wies...

使用STM32控制无源蜂鸣器发声播放音乐(STM32_07)_stm32发声音-程序员宅基地

一、无源蜂鸣器和有源蜂鸣器有源蜂鸣器内含振荡源,只要一通电就发声,但发生频率固定,音色单一;无源蜂鸣器内部不含振荡源,内部结构相当于电磁场扬声器,可以通过给他输出一定频率的信号才能发声。人耳能听到的频率范围在20Hz--20kHz之间,通过STM32的GPIO引脚快速切换高低电平输出就能实现无源蜂鸣器的发声,切换的频率不同,发出的音调就不一样。二、音乐播放的实现一段音乐就是不同频率的声音按一定的时..._stm32发声音

HTTP调试工具 Fiddler的使用方法 介绍 下载_httpanalyzies-程序员宅基地

Fiddler可以帮您记录,调试Microsoft Internet Explorer与Web应用程序的交互,找到Web程序运行性能的瓶颈,还有如查看向Web服务器发送cookies的内容,下载内容的大小等功能。 说多一点是,Fiddler站在用户与Web服务器的中间,由它转发请求与响应,因此Fiddler作为一个可检视,可定制的工具,能让您了解交互过程细节,有利于解决Web程序的交互问题。如下列示意图: Internet Explorer WinINET? (由Fiddler运行时自动注册) Fidd_httpanalyzies

随便推点

springMVC文件上传和springMVC对json的处理_springmvc中如何将前端上传的文件写入到json中-程序员宅基地

转载请标明出处:https://blog.csdn.net/men_ma/article/details/106847165.本文出自 不怕报错 就怕不报错的小猿猿 的博客springMVC文件上传和对json的支持目录结构图1、springMVC文件上传1.1 实现的目标效果图1.2 实现的操作步骤过程1.2.1 实现文件上传的思路步骤(语法)2、springMVC对json的处理2.1测试的操作步骤过程(案例)目录结构图1、springMVC文件上传1.1 实现的目标效果图提交._springmvc中如何将前端上传的文件写入到json中

platform_driver, platform_device_struct platform_driver { int (*probe)(struct platf-程序员宅基地

struct platform_driver {int (*probe)(struct platform_device *);int (*remove)(struct platform_device *);void (*shutdown)(struct platform_device *);int (*suspend)(struct platform_device *, pm_me_struct platform_driver { int (*probe)(struct platform_device *); int (*rem

ffprobe使用详解_ffprompt怎么用-程序员宅基地

目录1. 语法2. 描述3. 选项3.1 流指示符3.2 通用选项3.3 音视频选项3.4 主选项4. 写入器4.1 默认值4.2 compact, csv4.3 flat4.4 ini4.5 json4.6 xml5. Timecode1. 语法 ffprobe [options] [‘input_file’]2._ffprompt怎么用

手势识别项目总结(第二阶段)_手势识别论文总结-程序员宅基地

基于手势(哑语)识别的翻译系统时隔两个月,毕业答辩结束了。毕设跟论文也顺利完成,也该写一下后续了。前一篇文章写了手势识别系统的前期处理,即通过调用笔记本摄像头获取视频流,然后截取视频流中的指定位置图像做进一步的图像预处理。这篇文章主要做的工作内容是获取手势特征并建立手势特征库,建立手势数据集,利用svm建立并训练手势模型。一、获取手势特征并建立手势特征库在本实验中,采用方向梯度直方图的HOG特征提取的方法。1、具体的实现方法首先,将目标图像分割成小的连通区域,将之称为单元。之后采集单元中每个像_手势识别论文总结

小白多长时间才能学好Java、Springboot,能进公司做项目_springboot框架要学多久_JACKLI71的博客-程序员宅基地

前言现在市场上面的行情是需要学到SpringBoot,而学到SpringBoot则需要学习:JavaSE、数据库、JDBC、前端基础、JavaWeb、SSM这些基本的知识,除此之外,你还需要学习一些权限验证框架,缓存,分布式等等这些技术一般对于学习能力比较好的人来说,学习周期大概是在半年左右;不仅仅是需要学习这么多的知识,还需要你自己会动手敲代码,然后你自己还需要做一些项目,熟悉项目的开发流程Java学习时间及路线第一阶段:Java基础语法内容:运行环境、关键字、数据类型、运算符、方法、条件结构、_springboot框架要学多久

Java--缓存热点数据,最近最少使用算法_java最近最少使用算法-程序员宅基地

每日环球科技 2016-12-20 12:531、最近最少使用算法LRU (Least recently used,最近最少使用)【实现】:最常见的是使用一个链表保存缓存数据1、新数据插入到链表头部;2、每当缓存命中(即缓存数据被访问),将数据移动到链表头部;3、当链表满的时候将链表尾部的数据丢弃;【代价】命中时需要遍历链表,找到命中的数据块索引,然后需要将数据_java最近最少使用算法