题目描述:

解题思路:
思路1:可以想成是,第二行开始,每行在A前面输出字母的个数为 行数-1,即为(i-1)个,例如第三行为2个,那么每行从A+(i-1)开始递减,直到i等于0,转为A开始递增
思路2:也可以想到根据行列差值来输出字母,例如第一行的行数为1,那么就是从A开始输出,第二行的行数为2,则从A+(1-2)开始输出,即为A+(i-j)的绝对值
解题方法:
方法1:第一种思路
利用一个string保存每行的字母,遍历输出每一行,输出完清空字符串
方法2:第二种思路(非原创)
直接一个个输出字符,利用abs()函数求出i-j的绝对值,非常巧妙
代码:
#include<bits/stdc++.h>
using namespace std;
void func1(int n, int m){//无脑暴力写法
string s;
for(int i = 0; i < n; i++){
int bef = i;//保存当前i,i即为A前面的字母个数
for(int j = 0; j < m; j++){
if(bef>0){
s +=('

这篇博客介绍了如何使用C++解决蓝桥杯竞赛中的一道基础题,涉及字母图形的生成。作者提供了两种解题思路:一是通过行数确定字母起始位置和递减顺序;二是利用行列差值输出字母。并分别给出了两种方法的实现代码。
最低0.47元/天 解锁文章
2476

被折叠的 条评论
为什么被折叠?



