蓝桥杯2018年第九届真题——等腰三角形

等腰三角形


一、题目内容

题目描述

本题目要求你在控制台输出一个由数字组成的等腰三角形。具体的步骤是:
1. 先用1,2,3,...的自然数拼一个足够长的串
2. 用这个串填充三角形的三条边。从上方顶点开始,逆时针填充。
比如,当三角形高度是8时:

       1
      2 1
     3   8
    4     1
   5       7
  6         1
 7           6
891011121314151

显示不正确时

蓝桥杯2018年第九届真题——等腰三角形_第1张图片

输入

一个正整数n(3

输出

用数字填充的等腰三角形。为了便于测评,我们要求空格一律用"."代替。

样例输入

5

样例输出

....1
...2.1
..3...2
.4.....1
567891011

二、思路分析

        又是一道打印图形的题目,主要思路题目描述的1,2已经告诉了,先拼接一个字符串,然后逆时针填充为等腰三角形。

        拼接一个字符串可以通过循环和C++11标准中的库函数 to_string(numberic_value) 来实现,这个函数还是使用起来非常方便,先打印第1行,然后打印第2到第n-1行,最后打印最后一行,具体实现方法见下面代码实现部分的详细注释。要注意打印'.'或数字的条件,可以多尝试分析,最终确定准确的结果。


三、代码实现

#include 
using namespace std;

string str = ""; //初始化一个空字符串
int n;

int main() {
	cin >> n;
	int lr = 2 * n - 3; //左右两侧数字个数
	int bot = 2 * n - 1; //底部数字个数
	int num = lr + bot; //整个图形数字个数
	//将一段足够长的数字转换为字符串保存在str中
	for (int i = 1; i < num; i++) { //i<() 最终字符串长度只要大于num数就可以,不一定非要i

加油哦! 如有错误和需要改进完善之处,欢迎大家纠正指教。

你可能感兴趣的:(蓝桥杯真题,蓝桥杯,c++,c语言,算法,职场和发展)