赞
踩
Powered by:NEFU AB-IN
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印
所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。
给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。
由于数据只有1000,那么先把表打出来,二分查找小于等于n的最后一个值
按照题目要求打出来即可
''' Author: NEFU AB-IN Date: 2022-04-13 11:35:27 FilePath: \ACM\GPLT\L1-002.py LastEditTime: 2022-04-13 11:35:40 ''' from bisect import bisect_right a = [0, 1] i, cnt = 1, 3 while i <= 1000: i = i + 2 * cnt a.append(i) cnt += 2 n, c = input().split() n = int(n) id = bisect_right(a, n) - 1 num, tmp = 2 * id - 1, 2 * id - 1 for i in range(id - 1): print(" " * ((tmp - num) // 2) + num * c) num -= 2 print(" " * ((tmp - num) // 2) + c) for i in range(id - 1): num += 2 print(" " * ((tmp - num) // 2) + num * c) print(n - a[id])
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。