python-斐波那契词序列/最大回文乘积/求最大最小k个元素

news/2024/12/21 20:19:20/

一:斐波那契词序列
题目描述
编写一个程序,生成斐波那契词序列的前n个元素。 斐波那契词序列是一个词序列,其中每个词是通过连接前两个词形成的。 它以斐波那契序列命名,因为它是以类似的方式创建的,但是我们不是加数字,而是连接字符串或符号。
比如: 从两个单字母词开始,传统上是a和b。连接最后两个词以形成下一个词。 因此,斐波那契词序列的前几个词是:a,b,ba,bab,babba
定义函数generate_fibonacci_word(),接受一个参数n(整数)。
如果n小于2,函数应返回invalid。
对于n的其他值,生成斐波那契词序列到第n项,并逗号, 分隔的字符串返回。
示例输入
5
示例输出
a, b, ba, bab, babba
n小于2,返回invalid。
join()方法可以将列表转换为逗号分隔的字符串,但单词之间为逗号和空格。比如", ".join(["a", "b", "c"])返回"a, b, c"。
来源/分类(难度系数:二星)
算法 机器翻译


完整代码展示:
a=int(input())
b=['a','b']
c=2
while c<a:
       b.append(b[-1]+b[-2])
       c+=1
if a<2:
     print("invalid")
else:
       for i in range(0,len(b)-1):
             print(b[i],end=", ")
       print(b[-1])  

python">a=int(input())
b=['a','b']
c=2
while c<a:b.append(b[-1]+b[-2])c+=1
if a<2:print("invalid")
else:for i in range(0,len(b)-1):print(b[i],end=", ")
print(b[-1])  


代码解释:
“a=int(input()) ”,导入用户输入的斐波那契词序列的元素数量a。
“b=['a','b']
 c=2
 while c<a:
        b.append(b[-1]+b[-2])
        c+=1                           ”,建立一个空列表b,b的前两项为a,b。令c为循环密码子,初始值为2,当c<a时:将b的最后两个元素连接后添加进b中。每循环一次:c+1,直至c==a,跳出整个while循环。
“if a<2:
       print("invalid")
 else:
        for i in range(0,len(b)-1):
              print(b[i],end=", ")
        print(b[-1])                       ”,判断a是否小于2,如果是:则打印”invalid”,否则依次打印b中元素,每两个元素之间插入一个逗号。


运行效果展示:

0fe78e81db7d48939abd9c7b0af965fa.jpg

81725a990448496d9c5e85f7e125a256.jpg 

 

 

 

 

二:最大回文乘积
题目描述:
编写一个程序,找出两个n位数乘积中的最大回文数。
定义函数largest_palindrome_product,该函数接受一个参数n。
在函数内部,返回两个n位数的最大回文乘积。
示例输入
2
示例输出
9009
解释: 两个2位数的最大回文乘积是9009 = 91 * 99。
回文数是指从前往后读和从后往前读都一样的数。例如,12321是回文数,而12345不是回文数。
注意两个1位数的最大回文乘积是9 = 1 * 9。

来源/分类(难度系数:二星)
循环结构 数学思维


完整代码展示:
a=int(input())
b=[]
for i in range(10**(a-1),10**a):
      for j in range(10**(a-1),10**a):
            b.append(i*j)
e=[]
for k in range(0,len(b)):
      c=list(str(b[k]))
      d=c[:]
      d.reverse()
      if d==c:
            e.append(b[k])
e.sort()
print(e[-1])

python">a=int(input())
b=[]
for i in range(10**(a-1),10**a):for j in range(10**(a-1),10**a):b.append(i*j)
e=[]
for k in range(0,len(b)):c=list(str(b[k]))d=c[:]d.reverse()if d==c:e.append(b[k])
e.sort()
print(e[-1])


代码解释:
”a=int(input()) ”,导入用户输入的参数n。
“b=[]
 for i in range(10**(a-1),10**a):
       for j in range(10**(a-1),10**a):
             b.append(i*j)                       ”,建立一个空列表b,接着依次遍历10的a-1次方到10的a次方-1的数i和j,再将i*j的值添加进b中。
“e=[]
 for k in range(0,len(b)):
       c=list(str(b[k]))
       d=c[:]
       d.reverse()
       if d==c:
             e.append(b[k]) ”,建立一个空列表e,接着依次遍历b中元素:将该元素转换为字符串后储存在列表c中,再将c复制后赋给d,将d反转,判断d是否等于c,如果相同:将b[k]添加进e中。
“e.sort()
 print(e[-1]) ”,对e中元素进行升序排序,最后打印列表e的最后一个元素。


运行效果展示:

b4deea179a664560925bd23697c0f84a.jpg

97f052407e904c7aadb3ede5670d5929.jpg 

 

 

 

三:求最大最小k个元素
题目描述
编写一个程序,从一个元组中提取最大和最小的K个元素。
定义函数extract_max_min(),有两个参数:input_tuple(一个整数元组)和k(要提取的数量)。
在函数内部,从input_tuple中找到k个最小和k个最大的元素。
返回一个包含提取元素的元组,其中前k个元素是最小的,后k个元素是最大的。
示例输入
4 2 7 9 10 45 3 83
示例输出
(2, 3, 4, 9, 10, 45)
解释: 由于测试输入中k的值为3,因此提取并以元组的形式返回最小的3个数(2,3和4)和最大的3个数(9,10和45)
保证k小于等于input_tuple的长度。
来源/分类(难度系数:二星)
循环结构 递归


完整代码展示:
a=list(map(int,input().split()))
b=int(input())
c=[]
a.sort()
for i in range(0,b):
      c.append(a[i])
for j in range(-b,0):
      c.append(a[j])
sum="("
for k in range(0,len(c)-1):
      sum+="{}, ".format(str(c[k]))
sum+=str(c[-1])
sum+=")"
print(sum)

python">a=list(map(int,input().split()))
b=int(input())
c=[]
a.sort()
for i in range(0,b):c.append(a[i])
for j in range(-b,0):c.append(a[j])
sum="("
for k in range(0,len(c)-1):sum+="{}, ".format(str(c[k]))
sum+=str(c[-1])
sum+=")"
print(sum)


代码解释:
“a=list(map(int,input().split())) ”,导入用户输入的元组元素,并将其储存在列表a中。
“b=int(input()) ”,导入用户输入的需要提取的元组元素数量b。
“c=[]
 a.sort()
 for i in range(0,b):
       c.append(a[i]) ”,建立一个空列表c,接着对a中元素进行升序排序。遍历0~b-1的数字i,将a[i]添加进c中。
“for j in range(-b,0):
       c.append(a[j])  ”,遍历-b~-1的数字j,将a[j]添加进c中。
“sum="("
 for k in range(0,len(c)-1):
       sum+="{}, ".format(str(c[k]))
 sum+=str(c[-1])
 sum+=")"                                     ”,建立一个字符串sum,包含小括号左半部分。接着依次遍历c中除最后一个元素的其余元素,利用sum连接起来,且每两个元素之间插入一个逗号。连接c中最后一个元素,最后连接小括号右半部分。
“print(sum) ”,打印sum的最终结果。


运行效果展示:

360a6962dfc34f8487a24735ac65f5f6.jpg

f2031da1cadc46f7b2164ddf2bac1fd1.jpg 

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


http://www.ppmy.cn/news/1534110.html

相关文章

基于STM32设计的智慧路灯(腾讯云IOT)(233)

文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】项目硬件模块组成1.2 设计思路1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】项目背景【5】摘要1.4 开发工具的选择【1】设备端开发【2】上位机开发1.5 系统功能总结1.6 系统框架图…

Vivado - JTAG to AXI Master (GPIO、IIC、HLS_IP)

目录 1. 简介 2. JTAG to AXI Master 2.1 添加 IP Core 2.2 基本TCL命令 2.2.1 复位 JTAG-to-AXI Master 2.2.2 创建并运行写入传输事务 2.2.3 创建并运行读取传输事务 2.2.4 命令列表 2.3 帮助信息 2.4 创建TCL读写程序 2.4.1 Read proc 2.4.2 Write proc 2.4.3 …

golang web笔记-2.请求request

什么是request http消息分为request&#xff08;请求&#xff09; 和 response&#xff08;响应&#xff09; request&#xff1a;在go中是一个struct&#xff0c;代表了客户段发送的http请求&#xff0c;已可以通过request 的方法访问请求中的cookie、URL、User Agent&#xf…

java日志门面之JCL和SLF4J

文章目录 前言一、JCL1、JCL简介2、快速入门3、 JCL原理 二、SLF4J1、SLF4J简介2、快速入门2.1、输出动态信息2.2、异常信息的处理 3、绑定日志的实现3.1、slf4j实现slf4j-simple和logback3.2、slf4j绑定适配器实现log4j3.2、Slf4j注解 4、桥接旧的日志框架4.1、log4j日志重构为…

四十一、多云/混合云架构设计(网络与基础设施管理)

3. 网络与基础设施管理 在多云和混合云架构中,网络与基础设施管理是确保跨云环境中应用和服务能够可靠、安全、高效运行的关键环节。网络设计的合理性、基础设施的可扩展性以及跨云平台的协调至关重要。以下是多云/混合云架构中网络与基础设施管理的核心原则、技术和常见的挑…

centos7.9使用docker容器方式部署jenkins环境

文章目录 前言一、版本信息二、环境准备2.1 切换源2.2 安装docker2.3 安装ntp2.4 关闭selinux2.5 安装docker-compose 三、jenkins安装3.1 镜像准备3.2 maven环境安装3.3 jdk环境安装3.4 nodejs环境安装3.5 yaml文件准备3.6 进行启动3.7 查看密码 总结 前言 记录在centos7.6安…

SpringMVC源码-SpringMVC框架中Spring父容器和SpringMVC子容器加载的流程以及SpringMVC九大内置组件的初始

一、Spring父容器启动 SpringMVC 的项目结构如下: applicationContext.xml spring的配置文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.o…

紫光 FPGA固化RAM位置的操作流程

1. 前提条件&#xff1a;需要已经编译出一个功能完整的没有时序违例的版本出来&#xff1b; 2. 将RAM导出至txt文件&#xff1a; 这个过程需要几分钟&#xff0c;耐心等待一下。 等待提示成功就可以进行下一步操作了。 3. 将【2】中的txt文件中的内容全选复制粘贴到pcf文件的…