python实现杨辉三角_如何用Python实现杨辉三角和心

1. 如何实现杨辉三角

importcopy

list=[]

newlist=[]defFibonacci(list,n):

newlist.append(0)if n ==1:return [1]for i inrange(n):if i==0 or i==n-1:

newlist[i]=1

else:

newlist[i]=list[i-1]+list[i]returnnewlist

blanknum=68

for i in range(17):

blanknum= blanknum - 4list=copy.deepcopy(Fibonacci(list,i+1))for i in range(blanknum/2):print " ",for i inlist:print str(i).ljust(6),print ""

实现的效果如下:

576154-20160330124557629-1955805723.png

看上去还是有点没对齐。。。

2. 如何实现心

def printlove(start,length,midnumber=0,flag=31):for i in range(31):if istart+length-1 and i<15-(midnumber-1)/2 or i>15+(midnumber-1)/2 and i<31-start-length or i> 30-start or i==flag:print " ",else:print "*",print ""

for i in range(16):if i ==0:

printlove(4,3)elif i==1:

printlove(1,9)elif i>=2 and i<=5:

printlove(0,i+10)elif i==6:

printlove(1,7,7,15)elif i>=7 and i<=8:

printlove(i-5,6,5-(i-7)*2)elif i==9:

printlove(5,6,1)elif i==10:

printlove(8,6,1)elif i==15:

printlove(15,1,1)else:

printlove(i-1,16-i,1)

实现的效果如下:

576154-20160330124646723-1845649441.png

这样方式有点类似于穷举法,其实这个图案的原始实现算法是根据正弦函数来实现的~具体可参考网上其它语言的实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值