问题描述
IEEE 754 规定一个双精度浮点数百 1 位符号位、11 位阶和 52 位尾数组成 (以上位数都表示二进制位数)。
请问,按此规定一个双精度浮点数占用几个字节?
此题考查计算机基础知识,1字节==8位二进制
64/8=8,直接print(8)
问题描述
小蓝要处理非常多的数据, 其中有一些数据是日期。
在小蓝处理的日期中有两种常用的形式: 英文形式和数字形式。
英文形式采用每个月的英文的前三个字母作为月份标识, 后面跟两位数字表示日期, 月份标识第一个字母大写, 后两个字母小写, 日期小于 10 时要补前导 0
1 月到 12 月英文的前三个字母分别是 Jan、Feb、Mar、Apr、May、 Jun、Jul、Aug、Sep、Oct、Nov、Dec:
数字形式直接用两个整数表达, 中间用一个空格分隔, 两个整数都不写前导 0。其中月份用 1 至 12 分别表示 1 月到 12 月。
样例输入
2 8
样例输出
Feb08
import os
import sys
m,d =input().split()
months=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
if len(d)==1:
d='0'+d
print(months[int(m)-1]+d)
这题用Python解真的简单,定义一个数组,记得下标从0开始,天数就做一个简单if语句判断
import os
import sys
a=eval(input())
b=eval(input())
c=eval(input())
s1=a+b
s2=b+c
s3=a+c
if s1%3==0 or s2%3==0 or s3%3==0:
print("yes")
else:
print("no")
我猜有人会问为啥不把三个加一起,仔细审题,题目说的是“现在他手头有三个不同的数a,b,c, 他想知道, 这三个数中是不是有两个数的和是 3 的倍数。”
问题描述
“一只青蛙一张嘴, 两只眼睛四条腿。两只青蛙两张嘴, 四只眼睛八条腿。 三只青蛙三张嘴, 六只眼睛十二条腿。 ⋯⋯ 二十只青蛙二卜张嘴, 四十只眼睛八 十条腿。"
请问上面这段文字, 如果完全不省略, 全部写出来, 从 1 到 20 只青蛙, 总共有多少个汉字。
约定: 数字 2 单独出现读成 “两”, 在其他数里面读成 “二”, 例如 “十二”。 10 读作 “十”, 11 读作 “十一”, 22 读作 “二十二”。
请只计算汉字的个数, 标点符号不计算。
import os
import sys
def f(x):
if x<=10:
return 1
if x<=20 or x%10==0:
return 2
else:
return 3
sum=0
for x in range(1,21):
sum+=(f(x)+f(x)+f(2*x)+f(4*x))
print(sum+10*20)
这题我想的是先把固定句式算上,在通过递归,找出基本关系,一只青蛙一张嘴,两个眼睛四条腿。
1:1:2:4
然后带入函数分别判断数量。
问题描述
一个正整数的双阶乘, 表示不超过这个正整数且与它有相同奇偶性的所有正整数乘积。
n 的双阶乘用 n!! 表示。
例如:
3!!=3×1=3
8!!=8×6×4×2=384
11!!=11×9×7×5×3×1=10395
请问, 2021!! 的最后 5 位 (这里指十进制位) 是多少?
注意: 2021!!=2021×2019×⋯×5×3×1 。
提示: 建议使用计算机编程解决问题。
import os
import sys
sum=1
for i in range(1,2022,2):
sum*=i
print(sum%100000)
这题我先试了下递归,超出limit了…
上网查最大递归层数是1000左右,确实超了
问题描述
九九乘法表是学习乘法时必须要掌握的。在不同进制数下,需要不同的乘法表。 例如,四进制下的乘法表如下所示:
1*1=1
2*1=2 2*2=10
3*1=3 3*2=12 3*3=21
请注意,乘法表中两个数相乘的顺序必须为样例中所示的顺序,不能随意交换两个乘数。
给定 P,请输出 P 进制下的乘法表。
import os
import sys
n=eval(input())
b="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for i in range(1,n):
for j in range(1,i+1):
if (i*j//n)==0:
print(f"{b[i]}*{b[j]}={b[(i*j)%n]}",end=" ")
else:
print(f"{b[i]}*{b[j]}={b[(i*j)//n]+b[(i*j)%n]}",end=" ")
# 解释一下else:因为乘法表最大的一个等式结果也小于n*n,所以两位数字一定能表示出所有的结果
print()
是的,这题我也没做出来,整体思想是,如果两者乘积小于进制,不管;
乘积大于进制涉及到进位,通过巧用’//‘和’%';
在Python中,前者代表取整,后者代表取余。
问题描述
小蓝定义了一个 Fibonacci 集合 F, 集合的元素如下定义:
请问,这个集合中的第 2020 小元素的值是多少?
import os
import sys
f=[1,2,3,5,8] #list
for i in range(20000):
if i in f:
f.append(3*i+2) #在列表尾部添加元素
f.append(5 * i + 3)
f.append(8 * i + 5)
print(sorted( #排序
list( #集合转换为列表
set(f)))[2019]) #集合去重
此题不要想那么多,直接暴力破解,他要第2020小的元素,直接把前两万输进去,至于担心不符合题目的,看循环中的if语句,集合内进行append添加,输出时,集合自动去重,在转换为列表进行排序。
好啦今天就写到这了,祝各位2023心想事成,祝愿互联网行业苦尽甘来。