Python_test08-09

来源:互联网 发布:流程图软件visio2010 编辑:程序博客网 时间:2024/06/01 10:03

题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问20个月后兔子总数为多少?

程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....

# 斐波那契数列# 迭代def fab(n):    n1 = 1    n2 = 1    n3 = 1 #设置默认值为1    if n < 1:        print("输入错误!")        return -1    while (n-2) > 0:        n3 = n1 + n2        n1 = n2        n2 = n3        n -= 1    return n3result = fab(20)if result != -1:    print("小兔崽子共有 %d 只" % (result * 2))

# 递归def fab(n):    if n < 1:        print("输入错误!")        return -1    if n == 1 or n == 2:        return 1    else:        reutrn fab(n-1) + fab(n-2)result = fab(20)if result != -1:    print("小兔崽子共有 %d 只" % (result * 2))

题目:判断101-200之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

def is_prime(num):   middle = num // 2  #取中间数,如果不能被整除,就取整数    for i in range(2,middle):  #从2到中间数,只要能被整除,就说明不是素数        if num%i == 0:            return False    return Truecount = 0for i in range(101,200):    if is_prime(i) == True:        count += 1        print(i)print('共有素数: %d 个' % count)

原创粉丝点击