#1 打印实心等边三角形
n = 5
for i in range(1, n+1): # 控制三角形的高,也就是层数
for k in range(2*(n-i)): # 控制每层第一个*的空格,从最后一层往上数分别是0, 2, 4, 6....,因为三角形越大,第一层空格反而越多,想起这个应该跟i有关,而且肯定是被减的那个数,发现刚好是2n-2i
print("",end=" ")
for j in range(1, 2*i): # 控制每层*的个数,由于是1,3,5,7,9...所以很快知道是2i-1
print("*",end=' ')
print() #2 打印空心等边三角形(先出来了实心再考虑空心)
'''
思考:空心和实心的区别,空心的除了第一行和最后一行,其余行都是只有两个*,其它都是空格,因此最主要是找到空格个数
空格个数你会发现和消失的*有关(跟实心相比),第二行消失1个,第三行消失3个,依次类推,是不是1,3,5,7,9,那么是不是就是2((i-1)-1)
因为从第一行开始如果是1,3,5,7,9的话就是2i-1,那么从第二行开始肯定就是2((i-1)-1),那么消失的*个数知道了,那么空格和*是什么关系呢?
可以发现是空格2倍的*+1,所以每行空格数就是2*(i-1)-1)*2 + 1
'''
n = 5
for i in range(1, n+1): # 控制三角形的高,也就是层数
for k in range(2*(n-i)): # 控制空格
print("",end=" ")
if 1 < i < n:
print("*",end="")
for j in range(1, (2*(i-1)-1)*2 + 1 +1):
print(" ",end='')
print("*", end="")
else:
for j in range(1, 2*i): # 控制每层*的个数,由于是1,3,5,7,9...所以很快知道是2i-1
print("*",end=' ')
print()

最新文章

  1. java动态编译笔记
  2. Effective C++笔记:实现
  3. CocoaPods使用命令
  4. jsconsole
  5. 用SNMP协议实现系统信息监控--Windows Server 2008
  6. css3部分属性兼容性别扭写法(因为很多我就叫他别扭了,希望全面早早支持css3吧)
  7. Java面向对象抽象类案例分析
  8. Spring Cloud 之 服务注册与发现
  9. redis 系列16 持久化 RDB
  10. matlab练习程序(神经网络识别mnist手写数据集)
  11. Django之restframework
  12. 关于http与https的注意点
  13. 29. SpringBoot Redis 非注解
  14. PXC 57 二进制安装
  15. Java知识之运算符篇
  16. elasticsearch Geo Bounding Box Query
  17. 使用html2canvas实现超出浏览器部分截图
  18. android 上下左右手势判断 根据别人的改的
  19. composer包php-amqplib
  20. 深入探究jvm之类装载器

热门文章

  1. 1.2 Mac下配置maven环境变量
  2. Java代码审计-铁人下载系统
  3. 阶段3 2.Spring_08.面向切面编程 AOP_8 spring中的环绕通知
  4. 阶段3 2.Spring_02.程序间耦合_3 程序的耦合和解耦的思路分析1
  5. Centos下使用subversion
  6. spring + spring-data-redist + Redis 单机、集群(cluster模式,哨兵模式)
  7. 【HANA系列】SAP 【第一篇】EXCEL连接SAP HANA的方法(ODBC)
  8. 关于glog使用中遇到的问题
  9. Java基础/网络经验
  10. 在kali2.0中使用msf图形界面可能会遇到的问题