Python|打印给定高度和笔宽的叉

2020-02-13 17:46:22 浏览数 (1)

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

问题描述

打印大X

样式要求:

高度=15, 笔宽=3

*** ***

*** ***

*** ***

*** ***

*** ***

*** ***

*****

***

*****

*** ***

*** ***

*** ***

*** ***

*** ***

*** ***

高度=8, 笔宽=5

***** *****

**********

********

******

******

********

**********

***** *****

为了方便检查空格用‘.’代替

解决方案

一个叉大概分三个环节

一是最开始笔宽不交叉中间有空的地方

二是中间交叉但又比笔宽大的地方

三是中间等于笔宽的地方

将三个地方分开实现打印用while循环给定条件就行了。

代码语言:javascript复制
h,x=map(int,input().split(' '))
 m=h-x-1
 i=0
 while m>0:
      print('.' * i   '*'*x   "."  * (m)   '*'*x   '.' * i)
      m-=2
      i =1
 s=q=h x-1-2*(i)
 while q>=x:
      print('.'*i '*'*q '.'*i)
      q-=2
      i =1
 q=q 4
 i=i-1
 while q<=s:
      i=i-1
      print('.' * i   '*' * q   '.' * i)
      q =2
 m=m 2
 i-=1
 while m<=h-x-1:
      print('.' * i   '*' * x   "."  * (m)   '*' * x   '.' * i)
      m =2
      i-=1

0 人点赞