STICP-002_编程挑战系列赛第二场(从现在开始,这里叫涛涛广场!)_B.涛涛的金字塔

原题链接:STIPC-002_B.涛涛的金字塔

B.涛涛的金字塔

题目描述

请打印出一个字符金字塔,特征请参考样例。(大家喜欢这样简单的题面吗, x i x i xixi xixi~)

输入格式

输入一个大写字母

输出格式

输出一个字母金字塔

输入输出样例

样例一:
输入:
C C C
输出:
         A A A
      A B A ABA ABA
A B C B A ABCBA ABCBA

题目解析:

该类型的题目算是 C C C 语言学习的入门知识了,考察了循环嵌套的知识点以及 A S C I I ASCII ASCII 码值,且此类题型一般具有很强的规律性,比较容易观察。

由样例,从输入的字母可以得出输出的金字塔会有几层( A A A 1 1 1 Z Z Z 26 26 26),这样的话每层的前置空格有多少就十分易于计算了。

且从上至下的每层金字塔都会出现一个比上一层 A S C I I ASCII ASCII 最大的还要大 1 1 1 的字母,即例如: A A A 第一层 A S C I I ASCII ASCII 最大的是 A A A,第二层新出现的字母是 B B B,刚好比第一层的 A A A A S C I I ASCII ASCII 1 1 1

同时可以看出,每一层都是以新出现的字母为轴,镜像输出。即例如:" A B C D C B A ABCDCBA ABCDCBA ", " A B C B A ABCBA ABCBA "。

此时,对于任意一层的字母的输出方式已经很清晰了。

假设输入字母为 α α α
则第1层前置空格有 α − 1 α - 1 α1 个,此后应输出" A A A",换行。
则第2层前置空格有 α − 2 α - 2 α2 个,此后应输出" A B A ABA ABA",换行。

′ α ′ − ′ A ′ + 1 'α' - 'A' + 1 αA+1 层前置空格有 α − α α - α αα 个,此后应输出 A B C . . . α . . . C B A ABC...α...CBA ABC...α...CBA ,换行。

以上。

AC代码(C++):
#include <bits/stdc++.h>
using namespace std;
int main()
{
    char c;
    scanf("%c",&c);
    int n,i,j;
    n=c-'A'+1;
    for(i=0;i<n;i++)
    {
        for(j=0;j<n-1-i;j++)
        {
            printf(" ");
        }
        for(j=0;j<i+1;j++)
        {
            printf("%c",'A'+j);
        }
        for(j=i;j>0;j--)
        {
            printf("%c",'A'+j-1);
        }
        printf("\n");
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Grape_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值