洛谷简单题练习

day1---彼得·潘框架---1.15

习题概述

“彼得·潘框架”是一种装饰文字,每一个字母都是由一个菱形框架。一个彼得·潘框架看起来像这样 (x是字母,#是框架):

..#..

.#.#.

#.X.#

.#.#.

..#..

然而,只是一个框架会有些沉闷,所以我们每遇到三个字母会把第三个字母用温迪框架把它框起来。温迪框架看起来像这样:

..*..

.*.*.

*.X.*

.*.*.

..*..

输入:DOG

输出 :

..#...#...*..

.#.#.#.#.*.*.

#.D.#.O.*.G.*

.#.#.#.#.*.*.

..#...#...*..

输入: ABCD

输出:

..#...#...*...#..

.#.#.#.#.*.*.#.#.

#.A.#.B.*.C.*.D.#

.#.#.#.#.*.*.#.#.

..#...#...*...#..

输入格式:一行包含至多15个英文字母的大写字母。

输出格式:输出使用彼得·潘和温迪框架写成的5行文字。

代码部分

#include <bits/stdc++.h>//万能头
using namespace std;

int main(int argc, char** argv)
{
       string a,b,c,d;
       int e;
       cin>>a;
       e=a.size();//拆字使用

       b=b+".";
       c=c+".";
       d=d+"#";

       for(int i=0;i<e;i++)
       {     
              if((i+1)%3!=0)//彼得潘框架
              {
                  b=b+".#..";
                  c=c+"#.#.";
                  if((i+1)%3==2)
                  {
                         if(i==e-1)//温迪覆盖彼得潘
                             d=d+"."+a[i]+".#";
                         else//彼得潘在最后不会被覆盖
                             d=d+"."+a[i]+".*";
                  }   
                  else
                      d=d+"."+a[i]+".#";
              }
              else//温迪框架
              {
                  b=b+".*..";
                  c=c+"*.*.";
                  d=d+"."+a[i]+".*";
              }     
       }
       cout<<b<<endl<<c<<endl<<d<<endl<<c<<endl<<b;//输出
       return 0;
}

心得体会

1.记住这个万能头#include <bits/stdc++.h>该头文件包含了大部分标准库的头文件,可以方便地一次性引入多个标准库。

 2.用到的循环条件语句

if((i+1)%3!=0):如果当前字符不在第 3、6、9 …… 个位置上,则执行以下操作。即根据题目要求,每三个字符为一组,中间的字符在第 3、6、9 …… 个位置上。

if((i+1)%3==2):如果当前字符在第 2、5、8 …… 个位置上。

if(i==e-1):如果当前字符是字符串的最后一个字符。

PS: a 是一个字符串数组,a[i] 表示取出 a 数组中索引为 i 的元素。

未完待续......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值