猫史档案馆


[S2~通天塔80解析!]

用户:秋葵秋葵查看:4 回复:2 评论:4 创建时间:2018-12-30T14:36:49


在栏目的最后一期

提前祝大家新年快乐

在2019中完成自己2018未能实现的愿望!

像蝴蝶一样飞翔把!

 

题目1 梅森素数

center_imagecenter_image

分析:

1.定义判断质数的函数

2.开始无限循环,找出最小的梅森素数

3.打印结果

 

代码解析:

#导入math库
import math

#定义判断质素的函数
def is_prime(number):
    #首先大于1
    if (number > 1):
        #其次等于2返回True
        if (number == 2):
            return True
        #被2整出说再见
        if (number % 2 == 0):
            return False
        #从3开始遍历到整形开方+1,每次+1
        for current in range(3,int((math.sqrt(number) + 1)),2):
            #如果为0返回False
            if (number % current == 0):
                return False
        #既然都ok就True
        return True
    #小于1就False
    return False
#获取数值
n = int(input())
#设置自变量i为0
i=0
#开始无限循环
while True:
    i+=1
    #设置b为2的i方-1
    b = 2 ** i - 1
    #b>n就停止循环
    if (b > n):
        break
    #打印所在范围内的梅森素数
    if (is_prime(i) and is_prime(b)):
        print(b)

题目2 开关灯问题

center_imagecenter_image

分析:

1.初始化列表

2.逐一开关灯

3.遍历列表打印结果

代码解析:

#获取输入
a=int(input())
b=[1 for i in range(101)] #初始化101个灯
#循环每个同学
for i in range(1,a+1):  
    #该同学去开关所有灯
    for j in range(1,101): 
        #如果可以被整出
        if j % i==0:
            #开关灯泡
            if b[j]==0:
                b[j]=1
            else:
                b[j]=0
#记录个数
c=0  
#记录最后一个开着的
maxc=0 
#遍历100次
for i in range(1,101):
    #有就+1
    if b[i]==1:
        c+=1
        maxc=i
#打印结果
print(c,maxc)

题目3 传染鱼

center_imagecenter_image

分析:

1.获取输入

2.找出递归

代码解析:

#获得数据列表
a=input().split()
#列表赋值
x,n=int(a[0]),int(a[1])
#定义递归
def f(x,n):
    #如果次数为1则感染数+1
    if n==1:
        return x+1
    #返回次数-1后乘以感染鱼的数量
    return f(x,n-1)*(x+1)
#打印递归函数结果
print(f(x,n))

 

 


回复

上一页1 页 / 共 1下一页
泡泡糖339泡泡糖339

哇~~~数码宝贝的音乐超燃!!

2018年倒数第二天,果然又见秋葵大大~

明天期待~

点赞0


评论


我的地盘我作主我的地盘我作主

秋葵大神辛苦了,教程做得很棒,知道你非常辛苦,还不忘每层加入音乐,新的一年预祝你学业进步,心想事成emotion_编程猫_点赞

点赞0


评论