目录
请问在1900到2020中有多少个质数?
思路分析:通过质数的定义求解就行,可以使用两层循环进行处理,最外层循环表示质数的范围,第二层循环是循环当前的质数可能的存在的因为,对于当前的质数i最大的因数为根号i,所以从2枚举到根号的i即可(包括根号i),在枚举的时候计数即可
if __name__ == '__main__':
res = 0
for i in range(1900, 2021):
j, f = 2, 1
while j * j <= i:
if i % j == 0:
f = 0
break
j += 1
if f:
res += 1
print(res)
编码为80对应的字符?
思路分析:因为使用的是python语言,所以使用chr函数求解出ascii值对应的字符即可,chr函数传递进80ascii值即可
if __name__ == '__main__':
print(chr(80))
前100个斐波那契数列数中,有多少个是3的倍数?
思路分析:使用两个变量a, b迭代求解出第n个斐波那契数,b就为第n个斐波那契数,然后对当前求解斐波那契数列数判断是否是3的倍数满足则计数即可
if __name__ == '__main__':
a, b = 1, 1
res = 0
for i in range(3, 101):
a, b = b, a + b
print(i, b)
if b % 3 == 0:
# print(b)
res += 1
print(res)
已知一棵二叉树有2021个叶节点,请问有这棵树至少有多少个节点?
对于这棵二叉树最少的节点数目为只有度数为0和度数为2的节点,但是因为叶子节点的数目为2021为奇数个所以肯定存在度为1的节点那么最终二叉树总的节点数目为n = n0 + n1 + n2 = 2021 + 1 + 2020 = 4042个节点
问题描述:
一个身份证号码有?18?位数字或字母组成。其中前17位必须是数字,最后一位可能是数字或字母X。身份证号码满足一定的校验规则。令身份证号从右到左依次标号为?1?到?18,其中标号为?i?的位的位权设置为?2^(i-1)?mod?11?(2的i-1次方除以?11?的余数)。将每一位的数值乘以位权后相加,得到的结果除以?11?的余数应当为?1。其中最后一位(标号为1)中如果出现字母?X,看成数字?10。
例如,如果一个人的身份证号为?34052419800101001X,则:
标号为?1?的位,位权?1,数值?X,即?10,相乘得?10。
标号为?2?的位,位权?2,数值?1,相乘得?10。
标号为?3?的位,位权?4,数值?0,相乘得?0。
标号为?4?的位,位权?8,数值?0,相乘得?0。
标号为?5?的位,位权?5,数值?1,相乘得?5。
标号为?6?的位,位权?10,数值?0,相乘得?0。
标号为?7?的位,位权?9,数值?1,相乘得?9。
标号为?8?的位,位权?7,数值?0,相乘得?0。
标号为?9?的位,位权?3,数值?0,相乘得?0。
标号为?10?的位,位权?6,数值?8,相乘得?48。
标号为?11?的位,位权?1,数值?9,相乘得?9。
标号为?12?的位,位权?2,数值?1,相乘得?2。
标号为?13?的位,位权?4,数值?4,相乘得?16。
标号为?14?的位,位权?8,数值?2,相乘得?16。
标号为?15?的位,位权?5,数值?5,相乘得?25。
标号为?16?的位,位权?10,数值?0,相乘得?0。
标号为?17?的位,位权?9,数值?4,相乘得?36。
标号为?18?的位,位权?7,数值?3,相乘得?21。
将乘积相加,得?199,除以?11?的余数正好为?1。
小明的身份证号前?17?位为?11010120210221999,请问小明身份证的最后一位是多少?
答案提交:
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个字符,可能是数字或者大写字母X,在提交答案时只填写这个字符,填写多余的内容将无法得分。
思路分析:模拟题目描述的过程即可,题目的关键点为这句话:将每一位的数值乘以位权后相加,得到的结果除以?11?的余数应当为?1,所以我们可以循环遍历17位身份证号将对应位置的数值乘以位权的结果进行累加,最后使用一个1-10循环求解出哪一个数字加上n对11取余得到的结果为1输出这个数字即可。当我们编写好程序之后可以输出其中的位权与值看是否正确,并且通过题目中给出的例子看求解出的结果是否正确
答案:8
def solve(s: str):
n = 0
for i in range(len(s)):
weight = 2 ** (17 - i) % 11
n += weight * int(s[i])
print("位权为:{}, 数值为{}".format(weight, s[i]))
# 循环1-9的数字看哪一个是最后一个数字加上n对11取余为1
for i in range(1, 11):
if (n + i) % 11 == 1:
print("最后一位数字为: ", i)
if __name__ == '__main__':
s = "11010120210221999"
solve(s)
print("-" * 40)
solve("34052419800101001")
近期知晓云的版本更新通知频率低于去年,但我们的产品经理和工程师一直在努力地...
因子分析是什么 因子分析定义 ??因子分析就是在尽可能不损失信息或少损失信息的...
依赖倒置原则(DIP) 依赖倒置(Dependency Inversion Principle,缩写DIP)是面向对...
了解如何使用 ps、kill 和 killall 命令来终止进程并回收系统资源。 在 Linux 中...
想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区 https://...
最近有个需求就是根据产品编号批量下架产品,需要下架日期为16-31号之间的产品,...
在Windows10中,隐藏着很多不为人知的小秘密。有些小功能虽然看起来不起眼,但关...
文件操作一直是Web程序员头疼的地方,而文件操作在CMS这样的系统中又是必须的。...
如下所示: XML/HTML Code 复制内容到剪贴板 !DOCTYPEhtmlPUBLIC-//W3C//DTDXHTM...
如何做一个检索结果带链接的检索? % data=request.form("search_data") ' 从 FO...