Python 小高考篇(7)常用模板

目录


本文由Jzwalliser原创,发布在CSDN平台上,遵循CC 4.0 BY-SA协议。

因此,若需转载/引用本文,请注明作者并附原文链接,且禁止删除/修改本段文字。

违者必究,谢谢配合。

个人主页:blog.csdn.net/jzwalliser

斐波那契数列

常规算法

py 复制代码
n = int(input()) #输入
last = 1 #上一个数
this = 1 #当前数字
if n == 1 or n == 2: #如果是第一项或第二项
    print(1) #那就是1
else:
    for i in range(n - 2): #一直算到第n项
        now = this + last #新的数字即为倒数第一个数字加倒数第二个数字
        last = this #产生了新的数字,所以倒数第一个数变成了倒数第二个
        this = now #当前数变成倒输第一个数
    print(this) #输出结果

递推法

py 复制代码
fib = [1,1] #第一、二项
n = int(input()) #输入
if n > 2:
    for i in range(n - 2): #一直算到第n项
        fib += [fib[-1] + fib[-2]] #新的数字即为倒数第一个数字加倒数第二个数字,将新的数字放到列表中
print(fib[-1]) #列表中倒数第一个数字即为结果

递归法

py 复制代码
def fib(n): #递归函数
    if n == 1 or n == 2: #第一、二项
        return 1 #那就是1
    return fib(n - 1) + fib(n - 2) #递归,新的数字即为倒数第一个数字加倒数第二个数字
print(fib(int(input()))) #输入,计算,输出

判断质数

常规算法

py 复制代码
result = True #预处理,当前数有可能为质数
n = int(input()) #输入
if n == 0 or n == 1: #特判0和1不是质数
    print("no") #输出
for i in range(2,int(n ** 0.5) + 1): #从2一直试到根号n,看看有没有它的因数
    if n % i == 0: #如果找到了因数
        result = False #那么不是质数
        break #不用继续找因数了
if result == True: #是质数
    print("yes") #输出
else: #不是质数
    print("no") #输出

埃氏筛法

py 复制代码
n = int(input()) #输入
l = list(range(n + 1)) #创建列表l:[1,2,3,4,...,n]
result = True #预处理,当前数有可能为质数
pointer = 2 #先处理2的所以倍数
while pointer != n: #如果指针没有指向当前数
    for i in range(pointer * 2,n + 1,pointer): #处理质数的倍数
        l[i] = 0 #质数的倍数不是质数,所以把它清掉
    if l[n] == 0: #如果当前数被清掉了
        result = False #那它就不是质数
        break #不用继续算下去了
    pointer += 1 #如果当前数没有被清掉,那它有可能就是质数,也有可能它是合数但还不是处理过的质数的倍数,所以没有被清掉,故处理下一个质数
    while l[pointer] == 0: #被清掉的数不是质数
        pointer += 1 #找到下一个质数
if result: #是质数
    print("yes") #输出
else: #不是质数
    print("No") #输出

最大公因数

常规算法

py 复制代码
a,b = map(int,input().split()) #输入,转换为整数,保存到变量中
n = 1 #最大公因数暂定为1
for i in range(1,min([a,b]) + 1): #一直算到a、b中较小的那个
    if a % i == 0 and b % i == 0: #找到两个数的公因数
        n = i #更新公因数
print(n) #输出

辗转相除法

py 复制代码
def gcd(a,b): #递归函数
    if b > 0:
        return gcd(b,a % b) #递归
    else:
        return a #返回a
a,b = map(int,input().split()) #输入,转换为整数,保存到变量中
print(gcd(a,b))#计算,输出

三条边求三角形面积

海伦公式

py 复制代码
a,b,c = map(int,input().split()) #三角形三条边长
p = (a + b + c) / 2 #三条边长的一半
print((p * (p - a) * (p - b) * (p - c)) ** 0.5) #套公式

阶乘

常规算法

py 复制代码
a = int(input()) #输入
result = 1 #结果
for i in range(1,a + 1): #一个个往上乘
    result *= i #乘
print(result) #输出

递归法

py 复制代码
def fact(n): #递归函数
    if n == 1: #处理的数是1
        return 1 #1! = 1
    else: #处理的数大于1
        return fact(n - 1) * n #n * (n - 1)!
print(fact(int(input()))) #输入,计算,输出

结尾

好了,分享就到这里了,记得点赞收藏哦!

相关推荐
大学生毕业题目11 分钟前
毕业项目推荐:83-基于yolov8/yolov5/yolo11的农作物杂草检测识别系统(Python+卷积神经网络)
人工智能·python·yolo·目标检测·cnn·pyqt·杂草识别
Kyln.Wu44 分钟前
【python实用小脚本-205】[HR揭秘]手工党逐行查Bug的终结者|Python版代码质量“CT机”加速器(建议收藏)
开发语言·python·bug
计算机毕业设计木哥1 小时前
Python毕业设计推荐:基于Django的饮食计划推荐与交流分享平台 饮食健康系统 健康食谱计划系统
开发语言·hadoop·spring boot·后端·python·django·课程设计
小草cys1 小时前
在树莓派集群上部署 Distributed Llama (Qwen 3 14B) 详细指南
python·llama·树莓派·qwen
数据科学作家4 小时前
学数据分析必囤!数据分析必看!清华社9本书覆盖Stata/SPSS/Python全阶段学习路径
人工智能·python·机器学习·数据分析·统计·stata·spss
HXQ_晴天5 小时前
CASToR 生成的文件进行转换
python
java1234_小锋6 小时前
Scikit-learn Python机器学习 - 特征预处理 - 标准化 (Standardization):StandardScaler
python·机器学习·scikit-learn
Python×CATIA工业智造6 小时前
Python带状态生成器完全指南:从基础到高并发系统设计
python·pycharm
向qian看_-_7 小时前
Linux 使用pip报错(error: externally-managed-environment )解决方案
linux·python·pip
Nicole-----7 小时前
Python - Union联合类型注解
开发语言·python