返回

箭型图案(超级基础,对新人特别友好)

发布时间:2022-09-22 17:23:49 219

前言

(后面的剑都是打错了各位别介意) 好的家人们,接下来将为你们讲解这个剑型图案的写法,这道题也是困扰了我半天,我因为想寻求便捷,想的是只用一个外循环写完这个图案的代码,但是经历了半天的尝试,我成功的放弃了,OK接下来我给大家讲解一下剑型图案的正确解法:

正文开始

OK家人们,先给大家看一下什么是剑型图案: image.png 这个呢就是咱们的剑型图案,可能这样看不太清楚,我给大家换一种方法展示: image.png 大家可以看到这个一行是有五个字符其中有四个空格一个“”;大家还可以看上一张图,我们输入的是2,但是却打印了5行,所以我们可以推出: image.png 我们以紫色方框这一行为中间行,我们可以将图像分为上下两层: image.png 橙色框框内咱们就将他视为上层的行数,其余的绿色框框我们将他视为下面的行数,由图可见上面是3行,下面是2行,由此我们发现了,我们如果输入的是2,则上面是(2+1=3)行,下面则还是2行,就此可以推出,如果我们输入的是N则上面是n+1行,下面是n行,好的这里介绍完了我先把框架给大家写出来放在下方: image.png 好的,到了现在我们第一步完成了,接下来就该是判断一行有多少列,为了防止和上图混乱,我将换个图作画: image.png 好的大家请看贴心的我已经帮大家分好了行,大家可以发现每一个“”后面都没有字符,所以呢我们在打印到“”之后就不用打印了,接下来我们再看: image.png 大家可以看到我将一行分成了三个部分,两个空格为一组,其实可以一个空格为一组但是那样不久比较麻烦了嘛,咱们是追求精简的程序猿,大家可以发现不止是这一行,每一行都是三个部分,我给大家画出来: 注意!!!每个点就是空格的意思 image.png 我们发现了每一行都是三个部分那么我们的内循环也是可以进行次数的判断了,因为我们输入的是2,但是却有三部分,所以我们可以判断内循环进行了三次如下图: image.png 当然,我们输入的是N那他就是N+1次循环上图就是N+1次循环,好的内循环次数我们也判断完了,接下来就该是打印的部分了我给大家码出来: image.png 那么方框圈起来的就是打印空格的次数,大家可能不懂什么意思,我给大家画图解释一下吧: image.png 这里大家应该知道,这个剑型图案要打印2次空格,因为我们的判断条件是if(j<n-i)所以: image.png 就这样我们打印了两次空格,那么我的内循环还剩一次,因为这个时候(在打印两次空格之后)j才为2,但是判断条件是j<=n,因为n是2,j==n所以还能循环一次,我们就可以利用这次循环打印出我们需要的“”; image.png 大家要注意到我这里是两个空格为一组,在上图也标记出来了,正好三次,两次空格一次“”和我们预想的一样,但是可能有人会问,啊你这个循环才只是第一次经过内循环,谁知道第二次内循环是不是还是和想要的一样,emmmm那我给大家再画个图吧: image.png image.png 大家看箭头,由此可以推出再往下就是没有空格但是确是三个“”,到现在我们的上面部分的外循环就结束了,接下来是下面部分的: image.png 大家可以看见下面的空格数量是递增的,所以我们就可以写一个判断条件,如果符合条件则可以打印空格,如果不符合就去打印“”: image.png 这个就比较好理解了吧,当j<=i时候打印空格,因为这样的话,即使i=0的时候我也需要打印一个空格,整个图形只有中间的部分不需要打印空格,因为已经在上面打印完了,所以下面的部分,每一个行都需要打印空格,就这样,i=0的时候打印一次空格i=1的时候打印两次空格其余的打印“”, 好的兄弟们到这里我们就算是快要结束了代码如下 :image.png 我怎么感觉写的这个代码就像是个箭,对了家人们换行可不要忘记,ok接下来就是成品 image.png 谢谢观看!!! 希望能帮助到您,当然不止这些,比如菱形图,心形图(这个比较麻烦需要更多的循环,不过谁如果好奇我可以教你们)不过基础还是要一分为二看问题,把他分为上下两部分,那就在此祝愿大家以后生活开开心心!!!

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线