qq_15776929 2015-12-02 03:29 采纳率: 100%
浏览 1719
已采纳

传入字符串 打印N字图形

传入字符串 打印N字图形 该怎么搞 用函数写 具体图形见下图 图片说明

  • 写回答

2条回答 默认 最新

  • 木艮氵 2015-12-02 11:37
    关注

    观察一下特点

    1)字符串的长度为n,那么就要输出n行,且第i行的字符也就是字符串的第i个字符
    2)每行的长度等于字符串的长度,除了第一行和最后一行之外,均有三个相同的字符。
    3)每行有位置变化的字符,其位置从上到下在不断右移,而这个字符的前后空格数量也是一个等差数列。

    这意味着一个循环就可以搞定。
    由1)可知需要循环n次,那么字符串的长度n要先求出来。循环变量设置为行号line,从0到n-1。
    由2)可知当line==0和line==n-1的时候需要特殊处理,先输出一个该行对应的字符(字符串[line]),然后是空格,输出的空格数量是n-2,再输出一个对应的字符。
    由3)可知当line从1循环到n-2的时候,对应每行的输出数据应该是“字符1+空格1+字符2+空格2+字符3”,整行的长度为n,且字符1==字符2==字符3==字符串[line]。空格1对应的空格个数为line-1(第二行时line==1所以line-1==0也就是这个位置不会输出空格,与实际相符),空格2对应的个数为n-3-(line-1)个(同理倒数第二行时这个位置不会输出空格)。

    然后你就可以循环了,处理任意长度的字符串均可,但要考虑控制台窗口的大小,太长的话输出就乱掉了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line