小白5!
题目来源
话不多说,上题:
- python基础训练 day5
- 第一题
- 第二题
- 第三题
# 暂停一秒输出,并格式化当前时间。
time模块中格式化输出指示字符注记表:
直接查表,熟能生巧。
import time seconds = time.time() print(time.strftime(f'%y/%m/%d %H:%M:%S'),seconds) time.sleep(1) print(time.strftime(f'%y/%m/%d %H:%M:%S'),seconds)
运行结果如下:
# 运行结果 21/11/24 12:37:31 1637728651.3018382 21/11/24 12:37:32 1637728651.3018382第二题
# 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
经过分析,发现兔子的总数满足斐波那契数列,1,1,2,3,5…
把之前写的斐波那契数列的代码拿过来
def feibo(n): x1 = 1 x2 = 1 i = 2 while True: if n == 1: return x1 if n == 2: return x2 x1, x2 = x2, x1+x2 if i == n: return x1 i += 1 print(feibo(int(input('想知道第几个月兔子的数量?'))))
结果
# 运行结果 想知道第几个月兔子的数量?10 55第三题
# 判断101-200之间有多少个素数,并输出所有素数。
素数,又称质数(就是哥德巴赫猜想研究的那个东西。。),我们也来研究研究(哈哈哈,不是)。素数指的是“大于1的整数中,只能被1和这个数本身整除的数”。好!很有精神,直接整!
for i in range(101, 201): # 双重循环一个循环用来表示数,一个循环用来取余检验是否为素数 for k in range(2, i): if i % k == 0: break if k == i-1:# 输出前看一看k(取余数)是不是这个被检验数的最后一个取余数,要不一出出一串 print(i,end=' ')#输出结果行太多了,加个end条件
输出结果:
# 运行结果 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
最后深入的思考了一下,取余数去到k实际上有点多余,实际上第一个取余数为2,所以相应的来说,i肯定就不会被大于(i-1)/2的数除开了,注:素数一定是奇数。所以我们可以进行简化。并且看了一下,发现有个题干要求没有实现!赶紧加上。
count = 0 for i in range(101, 201): for k in range(2, int((i-1)/2)): if i % k == 0: break if k == int((i-1)/2)-1: count += 1 print(i,end=' ') print() print(f'共有{count}个素数')
大概是这样,边际条件没有仔细思考,看答案一样就整上来了。
# 运行结果 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 共有21个素数
好了,day5结束!
会当临绝顶,一览众山小
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)