蓝桥杯Python备赛-16届省赛B
·
问题描述
小蓝要为蓝桥画一个图形。由于小蓝的画图能力有限,他准备用大写字母 QQ 画一个 LL 形状的字符画。
他希望 LL 的粗细正好是 ww 个字符宽,竖的笔划伸出 hh 高(因此图形总共 h+wh+w 高),横的笔划伸出 vv 宽(因此图形总共 v+wv+w 宽),要求每个笔划方方正正不能有多余内容。
例如,当 w=2w=2, h=3h=3, v=4v=4 时,图形如下所示:
QQ
QQ
QQ
QQQQQQ
QQQQQQ
给定 w,h,vw,h,v, 请帮助小蓝画出这个图形。
输入格式
输入的第一行包含三个正整数 w,h,vw,h,v, 相邻整数之间使用一个空格分隔。
输出格式
输出若干行,表示对应的图形。
样例输入
3 4 5
样例输出
QQQ
QQQ
QQQ
QQQ
QQQQQQQQ
QQQQQQQQ
QQQQQQQQ
评测用例规模与约定
对于 30%30% 的评测用例,w=1w=1, 1≤h,v≤201≤h,v≤20;
对于 60%60% 的评测用例,1≤w,h,v≤201≤w,h,v≤20;
对于所有评测用例,1≤w,h,v≤1001≤w,h,v≤100。
自己编写的代码
import os
import sys
data = sys.stdin.read().split()
w = int(data[0])
h = int(data[1])
v = int(data[2])
result = []
a = []
for _ in range(w):
result.append("Q")
for _ in range(h):
print(''.join(map(str,result)))
for _ in range(w+v):
a.append("Q")
for _ in range(w):
print(''.join(map(str,a)))
优化
import sys
data = sys.stdin.read().split()
w = int(data[0])
h = int(data[1])
v = int(data[2])
for _ in range(h):
print('Q' * w)
for _ in range(w):
print('Q' * (v + w))
学习
'Q' * w:
- 这是 Python 的字符串乘法。
'Q' * 3直接等于'QQQ'
难度:简单
更多推荐


所有评论(0)