用python输出沙漏

编程入门 行业动态 更新时间:2024-10-18 03:34:23

用python输出<a href=https://www.elefans.com/category/jswz/34/1763722.html style=沙漏"/>

用python输出沙漏

打印沙漏

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

*****

***

*

***

*****

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

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

输入格式:

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

输出格式:

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

输入样例

19 *

输出样例:

*****

***

*

***

*****

2

分析:

观察每个沙漏,看每个沙漏由多少个符号组成。发现它们的递增规律是1、7、17、...、2*k^2-1,那么找出这个K就能把沙漏打印出来了。

代码

import math

N, sign = input().split(" ")

N = int(N)

k = int(math.sqrt((N+1)/2))

# 求出剩下的符号数

surplus = N-2*k**2+1

# 打印沙漏

for i in range(k):

print(" "*i, end="")

print(sign*(2*(k-i)-1))

for i in range(2,k+1):

print(" "*(k-i), end="")

print(sign*(2*i-1))

print(surplus)

更多推荐

用python输出沙漏

本文发布于:2024-03-06 04:53:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1714414.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:沙漏   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!