当前位置: 首页 > news >正文

B3837 [GESP202303 二级] 画三角形

题目描述

输入一个正整数 n,请使用大写字母拼成一个这样的三角形图案(参考样例输入输出):三角形图案的第 1 行有 1 个字母,第 2 行有 2 个字母,以此类推;在三角形图案中,由上至下、由左至右依次由大写字母 A−Z 填充,每次使用大写字母 Z 填充后,将从头使用大写字母 A 填充。

输入格式

输入一行,包含一个正整数 n。约定 2≤n≤40。

输出格式

输出符合要求的三角形图案。注意每行三角形图案的右侧不要有多余的空格。

输入输出样例

此类题套路代码截图,很简单的嵌套循环:

解题思路

根据上图分析,n=4,按照数数对齐找规律分析:

  • 第1行,1个字母 A
  • 第2行,2个字母 接着上一行输出 BC
  • 第3行,3个字母 接着上一行输出 DEF
  • 第4行,4个字母 接着上一行输出 GHIJ

仔细观察得到规律:

第 i 行, i个字母,字母从A开始一次递增输出,就像图中所示“一根绳上的蚂蚱”一样,需要注意字母到Z输出后,要回归到A再输出。

这一题同上一篇的“画正方形”类似,对于这种图形输出,双重循环分别控制行列输出。不同的是上一题是n行n列,而这一题是n行,但是每一行不是固定的n列,遇到这种情况,通常就要找出列数与行号i的关系。根据输出图形,我们可以发现每行的列数跟当前的行号一致,也即j<=i;

上一题的“画正方形”每行的字母是以本行的行首字母作为基准,而此题中所有的字母都是以字母'A‘为基准,依次递增。所以该题的关键是用变量 current 记录当前字母的偏移量(从 A 开始)。 每行输出 i 个字母(i 为行号),循环处理 Z 到 A 的转换。

代码一

#include <iostream>
using namespace std;
int main(){int n,current=0;cin>>n;for(int i=1;i<=n;i++){for(int j=1;j<=i;j++){cout<<char('A'+current%26);current++;}cout<<endl;}return 0;
}

代码二

#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin >> n;char ch='A';for(int i=1;i<= n; i++){// 第i行i个字符for(int j=1; j<=i; j++){cout<< ch;ch++;if(ch >'Z')ch ='A';}cout << endl;}return 0;
}

http://www.dtcms.com/a/334501.html

相关文章:

  • csrf攻击
  • 11、软件需求工程
  • AMD Ryzen AI Max+ 395四机并联:大语言模型集群推理深度测试
  • 智能二维码刷卡人脸识别梯控控制器硬件规格书​
  • 【C++】高效资源管理四剑客:RVO、NRVO、std::move、RAII 深度解析
  • 【3D重建技术】如何基于遥感图像和DEM等数据进行城市级高精度三维重建?
  • 【Vibe Coding 工程之 StockAnalyzerPro 记录】- EP3.Phase 2股票列表管理功能
  • Font shape `TU/ptm/m/n‘ undefined(Font) using `TU/lmr/m/n‘ instead
  • UE5多人MOBA+GAS 45、制作冲刺技能
  • Business Magic
  • [创业之路-550]:公司半年度经营分析会 - 解决方案汇总
  • 【Java web】Servlet 详解
  • Linux -- 文件【下】
  • MATLAB R2010b系统环境(二)MATLAB环境的准备
  • 基于Transformer的机器翻译——模型篇
  • 力扣面试150(57/100)
  • 罗技MX Anywhere 2S鼠标修复记录
  • RocketMq面试集合
  • Redis--day6--黑马点评--商户查询缓存
  • 极简工具箱:安卓工具箱合集
  • redis的key过期删除策略和内存淘汰机制
  • Python爬虫实战:研究pygalmesh,构建Thingiverse平台三维网格数据处理系统
  • 记录Linux的指令学习
  • ktg-mes 改造成 Saas 系统
  • 后量子密码算法ML-DSA介绍及开源代码实现
  • 343整数拆分
  • 实例分割-动手学计算机视觉13
  • MQ积压如何处理
  • ABAP AMDP 是一项什么技术?
  • 深入理解Java虚拟机(JVM):架构、内存管理与性能调优