打印字母菱形

字母菱形  (100/100 分数)
题目描述
打印字母菱形


输入描述
输入一个大写字母与一个整数n,1<=n<=26


输出描述
输出如下高度为2n-1的菱形;

注意:A的下一个字母是B,Z的下一个字母是A




样例输入
R 12

样例输出
           R
          S S
         T   T
        U     U
       V       V
      W         W
     X           X
    Y             Y
   Z               Z
  A                 A
 B                   B
C                     C
 B                   B
  A                 A
   Z               Z
    Y             Y
     X           X
      W         W
       V       V
        U     U
         T   T
          S S
           R
#include <iostream>
using namespace std;

int main(){
    int n;
    char c;
    cin >> c >> n;
    //n=1特殊情况 
    if(n==1){
        for(int i=0; i<n-1; ++i){
            cout << ' ';
        }
        printf("%c\n", c);
    }
    else{
        //第一行 
        for(int i=0; i<n-1; ++i){
            cout << ' ';
        }
        printf("%c\n", c);
        //2~n行
        for(int i=0; i<n-1; ++i){
            for(int j=n-2-i; j>0; --j){
                cout << ' ';
            }
            //超过Z的ASCII码则减去26 
            if(c+i+1>90)
                printf("%c", c+i+1-26);
            else
                printf("%c", c+i+1);
            for(int j=0; j<i*2+1; ++j){
                cout << ' ';
            } 
            if(c+i+1>90)
                printf("%c\n", c+i+1-26);
            else
                printf("%c\n", c+i+1);
        } 
        //n+1~倒数第二行
        for(int i=0; i<n-2; ++i){
            for(int j=0; j<i+1; ++j){
                cout << ' ';
            }
            if(c+n-2-i>90)
                printf("%c", c+n-2-i-26);
            else
                printf("%c", c+n-2-i);
            for(int j=2*(n-i)-5; j>0; --j){
                cout << ' ';
            }
            if(c+n-2-i>90)
                printf("%c\n", c+n-2-i-26);
            else
                printf("%c\n", c+n-2-i);
        } 
        //最后一行 
        for(int i=0; i<n-1; ++i){
            cout << ' ';
        }
        cout << c << endl;
    } 
    return 0;
} 

猜你喜欢

转载自blog.csdn.net/vaemusicsky/article/details/81053566