打印字母塔

Posted 要有梦想

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打印字母塔相关的知识,希望对你有一定的参考价值。

问题:

编写程序,输出以下形状的字母塔:

      A
      ABA
      ABCBA
      ABCDCBA
     ......
    ABCD..Z..DCBA

分析:

求解此问题有两个关键步骤:一是确定每一行前导空格符的数目;二是按照一定的规律输出大写英文字母。显然,一共将输出26行。所编的程序应能保证最后一行的前导控制符数目至少为0,不妨设最后一行有10个前导控制符,那么倒数第二行应有11个前导控制符,倒数第三行有12个,以此类推,第一行应有35个前导控制符。一般的,若令centralch表示“字母塔”某行位于中央垂线上的那一行字符,如上图字符"I",则该行的前导空格符数目应为‘Z‘-centralch+10,即90-73+10=27,而该行接着输出的一串英文大写字母字符应是由‘A‘递增至centralch,然后由centralch-1递减至’A‘,最后回车换行。由于有固定规律可寻,显见用循环结构,又因为这是确定次数的循环,故易选用for语句。循环控制变量选用字符变量。

 1 #include<stdio.h>
 2 main(){
 3     int i;
 4     char ch,centralch;
 5     printf("\n\n");
 6     for(centralch=A;centralch<=Z;centralch++){
 7         for(i=1;i<=Z-centralch+10;i++)
 8             printf(" ");
 9         for(ch=A;ch<=centralch;ch++)
10             printf("%c",ch);
11         for(ch=centralch-1;ch>=A;ch--)
12             printf("%c",ch);
13         printf("\n");
14     }
15 } 

 









以上是关于打印字母塔的主要内容,如果未能解决你的问题,请参考以下文章

细碎知识eclipse 的快捷键随机数格式化小数汉诺塔

左神算法书籍《程序员代码面试指南》——1_06用栈来求解汉诺塔问题

argparse 代码片段只打印部分日志

2021-12-24:划分字母区间。 字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表。 力扣763。某大厂面试

JavaScript 代码片段

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情