1027. 打印沙漏(20) python篇

冷不防 2022-06-18 08:11 272阅读 0赞

1027. 打印沙漏(20)

时间限制

200 ms

内存限制

65536 kB

代码长度限制

8000 B

判题程序

Standard

作者

CHEN, Yue

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印

  1. *****
  2. ***
  3. *
  4. ***
  5. *****

所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。

给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。

输入格式:

输入在一行给出1个正整数N(<=1000)和一个符号,中间以空格分隔。

输出格式:

首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。

输入样例:

  1. 19 *

输出样例:

  1. *****
  2. ***
  3. *
  4. ***
  5. *****
  6. 2
  7. n=input().split()
  8. i=1
  9. while True:
  10. if ((1+i)*(i+1)//2-1)<=int(n[0])<((3+i)*(i+3)//2-1):
  11. k=i
  12. a=int(n[0])-((1+i)*(i+1)//2-1)
  13. break
  14. i+=2
  15. add=-2
  16. x=k
  17. while True:
  18. print(" "*((k-x)//2)+n[1]*x)
  19. x+=add
  20. if x==1:
  21. add=2
  22. if x>k or x<=0:
  23. break
  24. print(a)

发表评论

表情:
评论列表 (有 0 条评论,272人围观)

还没有评论,来说两句吧...

相关阅读

    相关 1027.打印

    本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“\”,要求按下列格式打印 所谓“沙漏形状”,是指每