2018蚌埠NOIP复赛模拟题——第一题(triangle)打印三角形字符串

2018蚌埠NOIP复赛模拟题——第一题(triangle)打印三角形字符串 题解

题目大意:输入n,打印出对应的三角形。

n = 2
   /\
  /__\
 /\  /\
/__\/__\

n = 3
       /\
      /__\
     /\  /\
    /__\/__\
   /\      /\
  /__\    /__\
 /\  /\  /\  /\
/__\/__\/__\/__\

n = 4
               /\
              /__\
             /\  /\
            /__\/__\
           /\      /\
          /__\    /__\
         /\  /\  /\  /\
        /__\/__\/__\/__\
       /\              /\
      /__\            /__\
     /\  /\          /\  /\
    /__\/__\        /__\/__\
   /\      /\      /\      /\
  /__\    /__\    /__\    /__\
 /\  /\  /\  /\  /\  /\  /\  /\
/__\/__\/__\/__\/__\/__\/__\/__\

很明显,这道题是有规律的,可以通过上一个数的三角形,推出下一个三角形的形状。下午看到很多童鞋们都模拟到了n为5或6的情况,不过我感觉这道题可以通过递归的方式打印出来(因为三角形太漂亮,而且规律实在过于明显…)由于晚上太忙没时间写,回到宿舍后,感觉这道题还是挺有趣的,准备写一写。不过仔细思考过后,觉得并不需要通过递归来写,直接通过上一次的三角形来拼出下一个三角形即可。
不得不说C++的STL实在太好用,望同学们珍之爱之。这道题如果不用动态数组的话,会很难写,因为数组的规模在翻倍。

下面这个初始化定义是定义了一个长度为2的字符串数组,每个字符串的长度为4。我是为了初始化出一个矩形(可见部分为三角形,不可见部分为空格),这样初始化是因为在接下来拼接的时候,矩形更容易拼接。

    vector <string> v(2);
    v[
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值