0
点赞
收藏
分享

微信扫一扫

蓝桥杯Python初级测试题之省赛题5

浮游图灵 2022-04-02 阅读 48

标题蓝桥杯Python初级测试题之省赛题5

1. 内存空间
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小蓝准备用 256MB 的内存空间开一个数组,数组的每个元素都是 32 位 二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问 256MB 的空间可以存储多少个 32 位二进制整数?
答题思路:
(1)1MB=1024KB=10241024 bytes=10241024*8 bits

# 1MB=1024KB=1024*1024 bytes=1024*1024*8 bits
n_bits=256*1024*1024*8
n=int(n_bits/32)
print(n)

2. 猜生日
题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
今年的植树节(2012年 3 月 12 日),小明和他的叔叔还有小伙伴们一起去植树。休息的时候,小明的同学问他叔叔多大年纪,他叔叔说:“我说个题目,看你们谁先猜出来!”
“把我出生的年月日连起来拼成一个 8位数(月、日不足两位前补 0)正好可以被今天的年、月、日整除!”
他想了想,又补充到:“再给个提示,我是 6 月出生的。”
根据这些信息,请你帮小明算一下,他叔叔的出生年月日。
格式是年月日连成的 8 位数。例如,如果是 1948 年 6 月 12 日,就写:19480612。
答题思路:
(1)导入datetime
(2)日期变量xdate从20120312开始自减-1,使用strftime(“%Y%m%d”)转为类似20120101的格式
(3)根据题目条件能够被2012以及3和12同时整除且month=5的那天就满足条件,打印后退出循环

import datetime

date1 = datetime.date(2012, 3, 12)
n1 = int(date1.strftime("%Y%m%d"))
xdate = date1
while True:
    n = int(xdate.strftime("%Y%m%d"))
    if n % 2012 == 0 and n % 3 == 0 and n % 12 == 0 and xdate.month == 6:
        print(n)
        break
    xdate += datetime.timedelta(days=-1)

3.时间显示
题目描述
小蓝要和朋友合作开发一个时间显示的网站。
在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从 1970 年 1 月 1日 00:00:00 到当前时刻经过的毫秒数。
现在,小蓝要在客户端显示出这个时间。小蓝不用显示出年月日,只需要显示出时分秒即可,毫秒也不用显示,直接舍去即可。
给定一个用整数表示的时间,请将这个时间对应的时分秒输出。
输入描述
输入一行包含一个整数,表示时间。
输出描述
输出时分秒表示的当前时间,格式形如 HH:MM:SS,其中 HH 表示时,值为 0​​​​ 到 23,MM 表示分,值为 0​​​​ 到 59,SS 表示秒,值为 0​​ 到 59​。时、分、秒 不足两位时补前导 0。
答题思路:
(1)导入datetime
(2)用datetime.timedelta(milliseconds=nd)根据输入的毫秒数反推当前日期
(3)strftime(“%H:%M:%S”)格式化输出时间

import datetime

date1 = datetime.datetime(1970, 1, 1, 0, 0, 0,0)
nd=int(input("请输入ms偏移:"))
date2=date1+datetime.timedelta(milliseconds=nd)
print(date2.strftime("%H:%M:%S"))
举报

相关推荐

0 条评论