Python3 入门经典100例 | 菜鸟教程 11-20题

Python3 100例 | 菜鸟教程 习题链接
题11:斐波那契数列
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少对?
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21…

分析:前面两项加和等于第三项
分析一:第s月后每个月的兔子总数为多少对?

def animalNum(s):
    f1 = 1
    f2 = 1
    if s< 3:
        print(f1, f2, sep='\t', end='\t')
    print(f1, f2, sep='\t', end='\t')
    for i in range(1,s-1):
        f3 = f1 + f2
        print(f3, sep='\t', end='\t')
        f1 = f2
        f2 = f3
animalNum(8)

分析二:直接输出前N项数列

f1 = 1
f2 = 1
for i in range(1,55): #55并非代表第55个月,而是随意的一个数字
    print(f1, f2, sep='\t', end='\t')
    f1 = f1 + f2
    f2 = f1 + f2

题12:素数
题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

分析:
方法一:定义法,遍历除数
方法二:遍历一半的除数,如果两个整数(非1非除数自身)相乘得到除数,那么这两个数之一必定小于除数/2.
方法三:遍历根号下的除数,如果两个整数(非1非除数自身)相乘得到除数,那么这两个数之一必定小于根号下的除数.

l = []
for i in range(100, 201):
    k = True
    for j in range(2, i):
        if i%j == 0:
            k = False
            break
    if k == True :
        l.append(i)
print(l)
l = []
for i in range(100, 201):
    k = True
    for j in range(2, i//2+1):
        if i%j == 0:
            k = False
     
  • 0
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值