1、杨辉三角形Python实现:
1
/ \
1 1
/ \ / \
1 2 1
/ \ / \ / \
1 3 3 1
/ \ / \ / \ / \
1 4 6 4 1
/ \ / \ / \ / \ / \
1 5 10 10 5 1
#杨辉三角形
def triangel(n):
L=[1]#定义一个list[1]
while True:
yield L#打印出该list
L = [L[x] + L[x + 1] for x in range(len(L) - 1)]#计算下一行中间的值(除去两边的1)
L.insert(0, 1)#在开头插入1,L.insert(index, object) -- 在下标处index插入object
L.append(1)#在结尾添加1
if len(L) > 10:#仅输出10行
break
#生成一个generator对象,然后通过for循环迭代输出每一行
a=triangel(10)
for i in a:
print(i)
2、找出列表中最大最小值
print(panduan([]))
def pan(L):
if L!=[]:
#MAX=L[0],MIN=L[0]#max=L[0],min=L[0]显示错误,int不能迭代
MAX = L[0]
MIN=L[0]
for i in range(len(L)):
if L[i]>MAX:
MAX=L[i]
if L[i] < MIN:
MIN = L[i]
return MAX,MIN
print(pan([1,2,3,4,5,6]))
3、汉诺塔的移动,表示3个柱子A、B、C中第1个柱子A的盘子数量,然后打印出把所有盘子从A借助B移动到C的方法
#根据圆盘的数量确定柱子的排放顺序:若n为偶数,按顺时针方向依次摆放 A B C;
#若n为奇数,按顺时针方向依次摆放 A C B。
#⑴按顺时针方向把圆盘1从现在的柱子移动到下一根柱子,即当n为偶数时,若圆盘1在柱子A,则把它移动到B;若圆盘1在柱子B,则把它移动到C;若圆盘1在柱子C,则把它移动到A。
#⑵接着,把另外两根柱子上可以移动的圆盘移动到新的柱子上。即把非空柱子上的圆盘移动到空柱子上,当两根柱子都非空时,移动较小的圆盘。这一步没有明确规定移动哪个圆盘,你可能以为会有多种可能性,其实不然,可实施的行动是唯一的。
#⑶反复进行⑴⑵操作,最后就能按规定完成汉诺塔的移动。
#所以结果非常简单,就是按照移动规则向一个方向移动金片:
#如3阶汉诺塔的移动:A→C,A→B,C→B,A→C,B→A,B→C,A→C
def move(n,a,b,c):
if n==1:
print(a,'->',c)
else:
move(n-1,c,a,b)
print(a,'->',c)
move(n - 1, b, a, c)
print(move(2, 'a', 'b', 'c'))
print(move(3,'a','b','c'))
print(move(4,'a','b','c'))
print(move(5,'a','b','c'))
python实现小程序
猜你喜欢
转载自blog.csdn.net/lilulilu220723/article/details/85254386
今日推荐
周排行