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

一: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=3while 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+=1return 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.mzph.cn/bicheng/54535.shtml

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

相关文章

【优选算法之双指针】No.2--- 经典双指针算法(下)

文章目录 前言一、双指针示例&#xff1a;1.1 ⽔果成篮1.2 和为s的两个数字1.3 三数之和1.4 四数之和 二、双指针总结&#xff1a; 前言 &#x1f467;个人主页&#xff1a;小沈YO. &#x1f61a;小编介绍&#xff1a;欢迎来到我的乱七八糟小星球&#x1f31d; &#x1f4cb;专…

git-fork操作指南

git-fork操作指南 1.fork github仓库2. clone fork仓库3. 分支修改4.与原始仓库保持修改同步4.1添加上游仓库4.2 拉取上游分支4.3 合并更改4.4 推送更改 参考&#xff1a; 有时候我们需要将github的项目fork到自己名下&#xff0c;然后修改并提交pull request&#xff0c;这里将…

安装黑群晖系统,并使用NAS公网助手访问教程(好文)

由于正版群晖系统的价格不菲&#xff0c;对于预算有限的用户来说&#xff0c;安装黑群晖系统成为了一个不错的选择&#xff08;如果您预算充足&#xff0c;建议选择白群晖&#xff09;。如您对宅系科技比较感兴趣&#xff0c;欢迎查看本文&#xff0c;将详细介绍如何安装黑群晖…

reg和wire的区别 HDL语言

文章目录 数据类型根本区别什么时候要定义wire小结 数据类型 HDL语言有三种数据类型&#xff1a;寄存器数据类型&#xff08;reg&#xff09;、线网数据类型&#xff08;wire&#xff09;、参数数据类型&#xff08;parameter&#xff09;。 根本区别 reg&#xff1a; 寄存器…

【算法题】53. 最大子数组和-力扣(LeetCode)

【算法题】53. 最大子数组和-力扣(LeetCode) 1.题目 下方是力扣官方题目的地址 53. 最大子数组和 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一…

allWebPlugin中间件自定义alert、confirm及prompt使用

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品&#xff0c;致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX控件直接嵌入浏览器&#xff0c;实现插件加载、界面显示、接口调用、事件回调等。支持Chrome、Firefo…

跨游戏引擎的H5渲染解决方案(腾讯)

本文是腾讯的一篇H5 跨引擎解决方案的精炼。 介绍 本文通过实现基于精简版的HTML5&#xff08;HyperText Mark Language 5&#xff09;来屏蔽不同引擎&#xff0c;平台底层的差异。 好处&#xff1a; 采用H5的开发方式&#xff0c;可以将开发和运营分离&#xff0c;运营部门自…

pip install、yum install和conda install三者技术区分

pip install、yum install和conda install在安装系统环境时可以从以下几个方面进行区分选择&#xff1a; 一、适用范围 pip install 主要用于安装 Python 包。适用于 Python 项目中特定的库和工具的安装。如果你的项目是纯 Python 开发&#xff0c;并且需要安装各种 Python 库&…

Great_data=>Copy_Data=>Chart_RealTime=>UI_All

Great_data -------------------- import csv import os import random from datetime import datetime import logging import time # 配置日志记录 logging.basicConfig(filename=D:/_Study/Case/Great_Data/log.txt, level=logging.INFO, …

代码随想录Day 51|题目:99.岛屿数量、100.岛屿的最大面积

提示&#xff1a;DDU&#xff0c;供自己复习使用。欢迎大家前来讨论~ 文章目录 题目一&#xff1a;99. 岛屿数量思路深度优先搜索DFS广度优先搜索BFS 题目二&#xff1a;100. 岛屿的最大面积DFSBFS 总结 题目一&#xff1a;99. 岛屿数量 99. 岛屿数量 (kamacoder.com) 思路 …

linux网络编程4

24.9.20学习目录 一.UDP&#xff08;续&#xff09;1.广播广播流程 2.多播多播流程 一.UDP&#xff08;续&#xff09; 1.广播 由一台主机向该主机所在子网内的所有主机发送数据的方式&#xff1b; 广播只能用UDP或原始IP实现&#xff0c;不能使用TCP&#xff1b; 其作用是将…

ARM驱动学习之9注册字符类设备

ARM驱动学习之9注册字符类设备 • 分配内存空间函数kmalloc – 分配连续的虚拟地址&#xff0c;用于小内存分配。在include/linux/slab.h文件中。 – 参数1&#xff1a;申请的内存大小(最大128K)&#xff0c; – 参数2&#xff1a;GFP_KERNEL&#xff0c;代表优先权&#xff0…

Tomcat服务器—Windows下载配置详细教程

一、关于 1.1 简介 Tomcat是一个开源的Java Servlet容器和Web服务器&#xff0c;由Apache软件基金会维护。它实现了Java Servlet和JavaServer Pages (JSP) 规范&#xff0c;用于运行Java Web应用程序。Tomcat支持多种Java EE功能&#xff0c;并提供了高效的性能和可扩展性&am…

光伏电站的方案报告包含哪些内容

光伏电站的方案报告是一个综合性的文档&#xff0c;它详细描述了光伏电站项目的规划、设计、施工、运营及维护等各个环节。一个完整的光伏电站方案报告通常包含以下内容&#xff1a; 一、项目概述 项目背景&#xff1a;介绍光伏电站建设的背景、目的和意义&#xff0c;包括能…

如何在C++中使用Poppler库读取PDF文件(一)

如果只是读取、渲染pdf文件&#xff0c;除了mupdf以外&#xff0c;在Linux系统中还可以使用Poppler库。Poppler的历史非常古老&#xff0c;X窗口系统中的pdf查看工具xpdf&#xff0c;使用的就是poppler。 Poppler在Linux各发行版&#xff0c;以及BSD族系统之中&#xff0c;都有…

ARM驱动学习之7 驱动模块传参数

ARM驱动学习之7 驱动模块传参数 1.02_DriverModule_01例程的基础上编写简单模块module_param Makefile 文件名字修改为module_param clean部分&#xff1a;rm -rf *.mod.c *.o *.order *.ko *.mod.o *.symvers2.修改module_param.c (1):添加头文件 //定义module_param module…

Qt Linguist 短语书批量导入翻译.ts导入.qph

文章目录 前言一、准备工作 将ts文件和python文件放到一个根目录下二、执行如下代码 比如这个python文件名字叫test.py三、在根目录下打开powershell之类的控制台&#xff0c;执行python test.py总结 前言 在开发Qt软件过程中&#xff0c;不免需要涉及到翻译软件界面的工作。于…

华为OD机试 - 分解正整数 - 数学推导(Python/JS/C/C++ 2024 D卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

线程调优——调整线程池参数提升程序执行效率

先抛出一个问题&#xff0c;程序开发真的是线程越多效率越高吗&#xff1f;多线程是我们程序开发中必不可少的手段&#xff0c;线程就像“孙悟空”开启了分身术一样&#xff0c;每个分身都在“打妖怪”&#xff0c;那是不是分身越多&#xff0c;“打妖怪”的效率就越高&#xf…

Redisson实现分布式锁(看门狗机制)

目录 可重入锁&#xff1a; 锁重试和看门狗机制&#xff1a; 主从一致性&#xff1a; 首先引入依赖&#xff0c;配置好信息 3.使用Redisson的分布式锁 可重入锁&#xff1a; 可重入锁实现是通过redsi中的hash实现的&#xff0c;key依旧是业务名称加id&#xff0c;然后第一个…