【蓝桥杯训练】第三天1263

1263

[蓝桥杯2015初赛]打印大X

小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度。
为了便于比对空格,所有的空白位置都以句点符来代替。
要求输入两个整数m n,表示笔的宽度,X的高度。
输入
输入存在多组数据
每组测试数据输入一行,包含两个整数,用空格分开
(0<m<n, 3<n<1000, 保证n是奇数)
输出
要求输出一个大X
样例输入 Copy
3 9
4 21
样例输出 Copy

注意

算法

  1. 采用数组数字对应符号
  2. 可以使用对称简化,本题我第一遍遍历修改好数组
  3. 第二遍遍历输出图案

题解

def display(data):
    for i in range(len(data)):
        for j in range(len(data[i])):
            if data[i][j]:
                print('*',end='')
            else:
                print('.',end='')
        print()
while True:  
    m, n = map(int,input().split())      
    array = [[0 for i in range(m+n-1)] for i in range(n)]
    v = [1 for i in range(m)]
    for i in range(n):
        array[i][i:i+m] = v
        array[i][n-1-i:n-1-i+m] = v # 左右对称
    display(array)
while True:        
    print(f(input()))
posted @ 2020-01-19 23:58  燕山北  阅读(180)  评论(0编辑  收藏  举报