算法(网址)

有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡,至少要多少只小白鼠才能在24小时时鉴别出那瓶水有毒?
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))

猜你喜欢

转载自h972900846.iteye.com/blog/2370407
今日推荐