python-SZ斐波那契数列/更相减损数

news2024/11/15 10:32:51

一:SZ斐波那契数列
题目描述
你应该很熟悉斐波那契数列,不是吗?现在小理不知在哪里搞了个山寨版斐波拉契数列,如下公式:
F(n)=
{
$\ \ \ \ \ \ \ \ \ \ \ \ $ a,( n=1)
$\ \ \ \ \ \ \ \ \ \ \ \ $ b,( n=2)
$\ \ \ \ \ \ \ \ \ \ \ \ $ F(n−1)+F(n−2),(n>2并且n是奇数)
$\ \ \ \ \ \ \ \ \ \ \ \ $ F(n−1)+F(n−2)+F(n−3)(n>2并且n是偶数)
}
这里 a 和 b 是定值,现给出 a,b 和 n,你的任务是计算 F(n)。
输入格式
输入共 T+1 行。
第一行有一个正整数 T,表示测试实例的个数。
接下来 TT行,每行一个测试实例,每个测试实例包括三个正整数 a,b 和 n。
输出格式
对于每个测试实例,输出一行包含一个正整数 F(n)。
样例输入输出
样例输入

2
1 2 3
1 3 6
样例输出
3
24
数据范围
对于 100% 的数据,保证T≤10,a,b≤10,n≤30。
来源/分类(难度系数:二星
模拟 


完整代码展示:
def F(a,b,n):
       list_1=[a,b,a+b]
       begin=3
       while begin<n+1:
              if (begin+1)%2==0:                                               list_1.append(list_1[-1]+list_1[-2]+list_1[-3])
              elif (begin+1)%2==1:
                   list_1.append(list_1[-1]+list_1[-2])
              begin+=1
         return list_1[n-1]
m=int(input())
list_2=[]
for i in range(m):
      list_3=list(map(int,input().split()))
      list_2.append(list_3)
for i in range(0,len(list_2)):
      print(F(list_2[i][0],list_2[i][1],list_2[i][2]))

def F(a,b,n):
    list_1=[a,b,a+b]
    begin=3
    while begin<n+1:
        if (begin+1)%2==0:
            list_1.append(list_1[-1]+list_1[-2]+list_1[-3])
        elif (begin+1)%2==1:
            list_1.append(list_1[-1]+list_1[-2])
        begin+=1
    return list_1[n-1]
m=int(input())
list_2=[]
for i in range(m):
    list_3=list(map(int,input().split()))
    list_2.append(list_3)
for i in range(0,len(list_2)):
    print(F(list_2[i][0],list_2[i][1],list_2[i][2]))


代码解释:
“def F(a,b,n):
        list_1=[a,b,a+b]
        begin=3
        while begin<n+1:
               if (begin+1)%2==0:
         list_1.append(list_1[-1]+list_1[-2]+list_1[-3])
               elif (begin+1)%2==1:
                    list_1.append(list_1[-1]+list_1[-2])
               begin+=1
        return list_1[n-1]                                           ”,按照题意自定义一个函数F(),传递三个形参a,b,n,即斐波那契函数的第1项a,2项b和所求项n。(建立一个空列表list_1,将a,b,a+b分别作为list_1的第1,2,3项。令begin为循环密码子,当begin<n+1时:如果begin+1能被2整除,则将list_1后三项和添加进list_1末尾,否则将list_1后两项添加进list_1末尾。每循环一次,begin+1,直至begin==n+1,跳出整个while循环,最终返回list_1的末尾元素值)。
“m=int(input()) ”,导入用户输入的测试实例的个数m。
“list_2=[]
 for i in range(m):
       list_3=list(map(int,input().split()))
       list_2.append(list_3)                      ”,建立一个空列表list_2,循环m次:导入用户输入的a,b,n,并将其储存在列表list_3中,接着将list_3添加进list_2中。
“for i in range(0,len(list_2)):
       print(F(list_2[i][0],list_2[i][1],list_2[i][2])) ”,遍历list_2中的元素,将list_2[i][0]~list_2[i][2]作为实参传递进F()函数,并打印F()函数返回值。


运行效果展示:

a95024b579964f93b6816f27ede8e5b9.jpg

04380ed47b58467980e686c92e0df9cb.jpg 

 

 

 

 

二:更相减损数:
题目描述
利用更相减损术求两个整数的最大公约数,即每次将较大的数变成大数减去小数的值。
输入格式
输入两个正整数 m , n 。
输出格式
输出一个整数。
样例输入输出
样例输入

4 6
样例输出
2
数据范围
对于 100% 的数据,保证 1≤m,n≤106 。
来源/分类(难度系数:二星
递归 最大公约数 数学 


完整代码展示:

x,y=map(int,input().split())
if x > y:
     x,y=y,x
for fac in range(x,0,-1):
      if x % fac == 0 and y % fac == 0 :
           print('{}'.format(fac))
           break

x,y=map(int,input().split())
if x > y:
    x,y=y,x
for fac in range(x,0,-1):
    if x % fac == 0 and y % fac == 0 :
        print('{}'.format(fac))
        break


代码解释:
“x,y=map(int,input().split())
 if x > y:
      x,y=y,x                             ”,导入用户输入的两个正整数x,y,并判断x,y的·大小关系:如果x,y,则将x,y交换值(即保证x为x,y中最小值)。
“for fac in range(x,0,-1):
        if x % fac == 0 and y % fac == 0 :
             print('{}'.format(fac))
             break                                         ”,依次遍历x~1的所有数fac,并判断x,y是否同时能被fac整除,如果是:则打印fac,终止循环。


运行效果展示:

24bc38b3781e45819c459c21d1e592a7.jpg

 7937fe8bc6f04b45bede570b015a06ca.jpg

               (声明:以上内容均为原创) 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2153698.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

回归预测 | Matlab实现ReliefF-XGBoost多变量回归预测

回归预测 | Matlab实现ReliefF-XGBoost多变量回归预测 目录 回归预测 | Matlab实现ReliefF-XGBoost多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.ReliefF-xgboost回归预测代码&#xff0c;对序列数据预测性能相对较高。首先通过ReleifF对输入特征计算权…

Spring中的Web Service消费者集成(应该被淘汰的技术)

问题 最近需要对接一个老系统的web service接口&#xff0c;我已经有7&#xff0c;8年没有遇到过这种接口了。 思路 先用Spring空项目中的jaxws-maven-plugin插件生成一波web service客户端&#xff0c;然后&#xff0c;集成到现有的SpringBoot3项目中使用就可以了。 生成w…

人才有约,职为你:颐年集团携手粤荣学校共绘养老行业的美好未来

摘要&#xff1a;广州市白云区粤荣职业培训学校成功举办“人才有约&#xff0c;职为你”颐年集团养老机构线下招聘会 2024年9月19日下午2点30分&#xff0c;广州市白云区金骊城二楼热闹非凡。粤荣职业培训学校携手颐年集团&#xff0c;共同举办了主题为“人才有约&#xff0c;…

做短剧申请微信小程序备案整体的操作流程!

做国内短剧对接微信小程序&#xff0c;小程序备案是必不可少的&#xff0c;需要准备哪些资料&#xff0c;以及需要注意的事项&#xff0c;所需材料全部整理出来了&#xff0c;小程序从注册到类目和备案分为五个步骤来讲解&#xff0c;下面就由我来向大家介绍所有的操作流程。 …

【RabbitMQ】消息分发、事务

消息分发 概念 RabbitMQ队列拥有多个消费者时&#xff0c;队列会把收到的消息分派给不同的消费者。每条消息只会发送给订阅该队列订阅列表里的一个消费者。这种方式非常适合扩展&#xff0c;如果现在负载加重&#xff0c;那么只需要创建更多的消费者来消费处理消息即可。 默…

docker desktop windows stop

服务docker改为启动 cmd下查看docker版本 {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": ["https://hub.atomgit.com/"]…

详解c++:new和delete

文章目录 前言一、new和mallocnew的用法&#xff08;爽点&#xff09;自动构造 delete和freedelete的用法&#xff08;爽点&#xff09; 提醒 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 在C中&#xff0c;new 和 delete 是两个非常重要的操作符&am…

Python面相对象案例熟悉对MySQL的操作(案例一、学生管理系统,案例二、模拟注册与用户登录)有源码

Python面相对象案例熟悉对MySQL的操作 案例一&#xff0c;学生管理系统 对数据表的要求&#xff1a; 在mysql中创建数据库gamedb,创建用户表userinfo,字段如下&#xff1a; 用户编号uid(int,主键&#xff0c;自动增长) 用户姓名uname(varchar(20),非空) 用户昵称nickname(…

【Delphi】Delphi 中的 LiveBindings 使用场景与概念

LiveBindings 是 Delphi 提供的一种数据绑定机制&#xff0c;用于将 UI 控件与数据源&#xff08;如数据库字段、对象属性等&#xff09;进行动态连接。LiveBindings 允许开发人员通过可视化的方式绑定数据&#xff0c;省去了大量的手动编写代码&#xff0c;使 UI 更新和数据同…

RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验

1.RAGflow简介 全面优化的 RAG 工作流可以支持从个人应用乃至超大型企业的各类生态系统。大语言模型 LLM 以及向量模型均支持配置。基于多路召回、融合重排序。提供易用的 API&#xff0c;可以轻松集成到各类企业系统。支持丰富的文件类型&#xff0c;包括 Word 文档、PPT、exc…

『玉竹』基于Laravel 开发的博客、微博客系统和Android App

基于 Laravel 和 Filament 开发, 使用 Filament 开发管理后台&#xff0c;前端比较简洁。 博客大家都清楚是什么东西&#xff0c;微博客类似于微博之类的吧&#xff0c;有时候想要写的东西可能只有几句话&#xff0c;想要起个标题都不好起。 为了是微博客功能更好用&#xff0c…

Navicat导入Sql文件至Mysql数据库,事务失效

Mysql 版本&#xff1a;8.0.39 Navicat 版本&#xff1a;17.x、16.x 结论&#xff1a; Navicat 导入sql文件&#xff0c;事务不会生效&#xff0c;无论怎么设置 mysql.exe 导入sql文件&#xff0c;事务生效 测试 准备一张表 name约束不能为空&#xff0c;用于测试事务失败…

Qemu开发ARM篇-2、uboot交叉编译

文章目录 1、交叉编译工具安装2、uboot交叉编译3、FAQ 在继上一篇 Qemu开发ARM篇-1、环境搭建篇中&#xff0c;我们搭建安装了qemu虚拟机&#xff0c;在本节中&#xff0c;我们将演示如何安装交叉编译工具并交叉编译 uboot,在下一节中&#xff0c;我们将演示如何使用 qemu运…

如何快速找回Finalshell中VPS的SSH密码

买了vps亦或者重装了系统&#xff0c;就会更新SSH的连接密码&#xff0c;如果忘记保存或者遗忘&#xff0c;在邮箱里也找不到&#xff0c;再重装系统会非常麻烦。这时就需要在Finalshell中找回SHH的密码了。方法如下&#xff1a; 第一步&#xff1a;无认哪一种方法&#xff0c…

嵌入式入门小工程

此代码基于s3c2440 1.点灯 //led.c void init_led(void) {unsigned int t;t GPBCON;t & ~((3 << 10) | (3 << 12) | (3 << 14) | (3 << 16));t | (1 << 10) | (1 << 12) | (1 << 14) | (1 << 16);GPBCON t; }void le…

window下idea中scala的配置

目录 Scala安装步骤&#xff1a; 1.下载scala安装包 2.配置环境变量&#xff1a; 3.检查scala是否安装成功&#xff1a; 4.idea安装scala插件 5.导入scala-sdk 6.新建scala文件 Scala安装步骤&#xff1a; 1.下载scala安装包 访问Scala官网&#xff1a;https://www.sca…

MySQL高阶1907-按分类统计薪水

目录 题目 准备数据 分析数据 总结 题目 结果表 必须 包含所有三个类别。 如果某个类别中没有帐户&#xff0c;则报告 0 。 按 任意顺序 返回结果表。 查询每个工资类别的银行账户数量。 工资类别如下&#xff1a; "Low Salary"&#xff1a;所有工资 严格低于…

YOLOv8改进 | 特征融合篇,YOLOv8添加iAFF(多尺度通道注意力模块),并与C2f结构融合,提升小目标检测能力

摘要 特征融合,即来自不同层或分支的特征的组合,是现代网络架构中无处不在的一部分。虽然它通常通过简单的操作(如求和或拼接)来实现,但这种方式可能并不是最佳选择。在这项工作中,提出了一种统一且通用的方案,即注意力特征融合(Attentional Feature Fusion),适用于…

刷题训练之栈

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;熟练掌握字符串算法。 > 毒鸡汤&#xff1a;学习&#xff0c;学习&#xff0c;再学习 ! 学&#xff0c;然后知不足。 > 专栏选自&#xff1a;刷题…

【C++】C++库:如何链接外部库、静态链接和动态链接,以及如何自建库并使用

十三、C库&#xff1a;如何链接外部库、静态链接和动态链接&#xff0c;以及如何自建库并使用 本篇讲C库&#xff0c;先讲如何在项目中使用外部库&#xff0c;包括静态链接和动态链接的实现&#xff1b;再讲如何在VisualStudio中自建模块或库项目&#xff0c;让所有项目都能使…