http://blog.csdn.net/lovelimx/article/details/8989075
汉诺塔问题算法
http://blog.csdn.net/hikobe8/article/details/50479669
按照算法类问题求解框架来做
def move(n,a,b,c): global i if(n<=0): print('input ok number') if(n==1): print(a+'-->'+c) i = i + 1 return move(n-1,a,c,b) print(a+'-->'+c) i = i + 1 move(n-1,b,a,c) global i i = 0 move(4,'a','b','c') print(i)
有1000瓶啤酒,每喝完一瓶得到一个空瓶子,每3个空瓶子又能换1瓶啤酒,喝掉以后又得到一个空瓶子。问总共能喝多少瓶啤酒?还剩多少空瓶子
b = 1000; # 1000 + (333+1)-1 +.... #recursive def a(b): if( b >= 3 ): childKong = int(b/3) yu = b%3 return b+a(childKong+yu)-yu else: return b print(a(b)) #1000 + 333 + .... #iteration def c(b): drink = b while b >= 3: swapB = int(b/3) rest = b%3 drink = drink + swapB b = swapB + rest return drink; print(c(b))