今天就跟大家聊聊有关Python中怎么实现一个等腰三角形,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
1. 先用1,2,3,...的自然数拼一个足够长的串
2. 用这个串填充三角形的三条边。从上方顶点开始,逆时针填充。
比如,当三角形高度是8时:
1
2 1
3 8
4 1
5 7
6 1
7 6
891011121314151
要求:空格一律用"."代替。
输入格式:
一个正整数n(3<n<300),表示三角形的高度
输出格式:
用数字填充的等腰三角形。
输入样例:
5
输出样例:
....1
...2.1
..3...2
.4.....1
567891011
输入样例:
10
输出样例:
.........1
........2.2
.......3...2
......4.....2
.....5.......1
....6.........2
...7...........0
..8.............2
.9...............9
1011121314151617181
解决方案
(1)确定三角形拼接的范围:因为三角形是一个自然数拼接成的串,所以我们先确定不同层数对应到的自然数,观察两个案例(从上到左下到右再到上)可知:5层到13,10层到23(均未到最后一个自然数的最后一个值是因为第一层只有一个自然数)。所以n层则会从1拼接到2n+3。
(2)每一行第一个数字前的空格数:观察题目给出的两个输出案例可以发现每一行第一个数前面的空格数为输出三角形的高(n) - 第几层。
(3)每一行的第一个数刚好和层数相等。
(4)第2到第n层两个数之间的空格数:从第二层开始所以有i-2,每一层增加两个即(i-2)* 2,又因起始数量为1,所以规律是(i-2)* 2 – 1。
(5)第2到第n层第二个数的确定:因为从上到下的第二个数字是拼接的串的逆序且第一层只有一个数字,所以第n层的第二个数字为拼接串的倒数第n个数字。
(6)最后一层即为拼接串的第n个数到倒数第n个数。
解决代码
n = int(input()) lis1 = "".join(str(i) for i in range(1, 2 * n + 4)) print("." * (n - 1) + lis1[0]) # 第一层 for i in range(2, n): # 第2到n-1层 print("." * (n - i) + lis1[i-1] + "." * ((i - 2) * 2 + 1) + lis1[-i]) print(lis1[n - 1: -n+1]) # 最后一层 |
运行实例
看完上述内容,你们对Python中怎么实现一个等腰三角形有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。