H-蛇皮走位(吉首大学2019程序设计校赛)c++

暴力加字符串  easyeasy!    蛇形输出

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

题目描述

邪恶的红红星球为攻占蓝蓝星球,派出满载氢弹的敢死星际队去轰炸蓝蓝星球。

但是蓝蓝星球的光速炮弹能在发射后的瞬间击毁星际队。

于是,红红星球在星际队的八万里半径内凝聚浓厚的大气缓冲层来减速炮弹,使得星际队能够有着一定的反应时间,利用蛇皮走位躲开光速炮弹的轰击。

本题要求你模拟星际队的行进轨迹,以边长2n+1的矩形为战略地图,从左上角出发以反'S'形蛇皮走位抵达右下角,输出用26个小写字母循环表示。

输入描述:

多组输入(不多于10组),每行一个整数n(0 <= n <= 100)。

输出描述:

对于每组数据,输出一个(2n+1)*(2n+1)的字母矩阵。

示例1

输入

复制1 2 3

1
2
3

输出

复制abc fed ghi abcde jihgf klmno tsrqp uvwxy abcdefg nmlkjih opqrstu bazyxwv cdefghi ponmlkj qrstuvw

abc
fed
ghi
abcde
jihgf
klmno
tsrqp
uvwxy
abcdefg
nmlkjih
opqrstu
bazyxwv
cdefghi
ponmlkj
qrstuvw

才开始的的时候 第一次代码没有测试点全过

 

后来发现,应该是数组的存储没有处理好

噢,后来发现,原来就是z的处理,漏了

后面就全过啦,开心

#include<bits/stdc++.h>
using namespace std;
int main()
{
    ios::sync_with_stdio(false);
    int n,num,num1;
    char zm[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};//储存要循环输出的字母表
    while(scanf("%d",&n)!=EOF)
    {int N=2*n+1;
     num=0,num1=0;
    for(int i=1;i<=N;i++)
       {if(i%2!=0)//奇数
       { for(int j=0;j<N;j++)
          {num++;
           int tmp;
           tmp=num%26;
           if(tmp==0)tmp=26;
           cout<<zm[tmp-1];}    }
         else //偶数
         {
             num1=num+N;//蛇形输出的关键
             for(int j=0;j<N;j++)
              {
               num++;
               int tmp;
               tmp=num1%26;
               if(tmp==0)tmp=26;
               cout<<zm[tmp-1];
               num1--;} 
             
          }
        cout<<endl;   }}
    return 0;
}

 

Guess you like

Origin blog.csdn.net/qq_51976555/article/details/118070076