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

news2024/11/27 14:42:38

一:斐波那契词序列
题目描述
编写一个程序,生成斐波那契词序列的前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])  

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])

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)

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.coloradmin.cn/o/2187088.html

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

相关文章

美国游戏玩家的文化偏好

美国游戏市场是世界上最大、最多样化的市场之一&#xff0c;受到一系列文化、社会和经济因素的影响。美国游戏玩家通常以参与技术和娱乐为特征&#xff0c;表现出由个人主义、竞争和社交互动驱动的偏好。主要趋势和偏好在这个市场中脱颖而出&#xff1a; 游戏类型多样 美国玩…

毕业设计选题:基于ssm+vue+uniapp的教学辅助小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…

Resdis中关于字符串类型的基础命令

本文主要详解key-value中vaule为字符串类型的情况&#xff0c;value属于其他的数据类型不适应&#xff1b;有几个命令是通用命令 目录 1.set和get 2.keys 3.exists 4.del 5.expire 6.ttl 7.type 8.object encoding key 9.加减操作 10.字符串操作 11.命令小结 1.se…

拿下奇怪的前端报错:SyntaxError: Unexpected token ‘??=‘或‘xxx‘ - 浅谈Nodejs版本过高过低的部分问题

在前端开发时&#xff0c;如果同时维护多个项目&#xff0c;跨越的年度又比较大&#xff0c;难免会使用多个Nodejs版本。有时候版本不对&#xff0c;不仅仅是安装会报错 1 依赖无法安装 一般情况下nodejs又向后兼容较好&#xff08;除了部分三方包&#xff09;&#xff0c;所…

day03-js 作业

js基础 一.选择 1C 2C 3D 4C 5B 6B 7C 8A 二.编程 2 函数 数组与对象 一.选择 1D 2C 3D 4A 5D 6B 7B 8A 二.编程 1 2 4

Linux驱动开发(速记版)--设备树插件

第六十八章 设备树插件介绍 Linux 4.4之后引入了动态设备树&#xff0c;其中的设备树插件&#xff08;Device Tree Overlay&#xff09;是一种扩展机制&#xff0c;允许在运行时动态添加、修改或删除设备节点和属性。 设备树插件机制通过DTS&#xff08;设备树源文件&#xff0…

50.哀家要长脑子了!

1.1705. 吃苹果的最大数目 - 力扣&#xff08;LeetCode&#xff09; 贪心贪在哪里&#xff0c;用一个优先队列&#xff08;小根堆&#xff09;存储腐烂日期和该日期苹果腐烂的数量。优先吃掉距离腐烂日期最近的苹果。吃苹果分为两个阶段&#xff0c;第一个是在1-n天内&#xff…

MySQL 中的 LAST_INSERT_ID()函数详解

在 MySQL 数据库中&#xff0c;LAST_INSERT_ID()是一个非常有用的函数。它可以帮助我们获取最近一次插入操作所生成的自增 ID 值。本文将详细解释 MySQL 中的LAST_INSERT_ID()函数及其用途。 一、函数介绍 LAST_INSERT_ID()是 MySQL 中的一个内置函数&#xff0c;它返回最近一…

跨平台音乐播放器Feishin

什么是 Feishin &#xff1f; Feishin 是一款现代的自托管音乐播放器&#xff0c;支持多种音乐来源和功能。它是由Sonixd 的重构版本发展而来&#xff0c;能够与 Navidrome 或 Jellyfin API 音乐服务器兼容&#xff0c;目前还不支持 Subsonic API 。Feishin 具有现代化的用户界…

【mmsegmentation】Loss模块详解(入门)以调用FocalLoss为例

1、mmdet中损失函数模块简介 1.1. Loss的注册器 先来看段代码&#xff1a;mmseg/models/builder.py # mmseg/registry/registry.py # mangage all kinds of modules inheriting nn.Module # MODELS Registry(model, parentMMENGINE_MODELS, locations[mmseg.models])from mm…

风格迁移项目一:如何使用

前言 由于我不太会pr&#xff0c;所以直接新建的项目&#xff0c; 原项目地址&#xff1a;https://github.com/Optimistism/Style-transfer 原项目代码的讲解地址&#xff1a;https://www.bilibili.com/video/BV1yY4y1c7Cz/ 本项目是对原项目的一点点完善。 项目地址&…

C语言复习概要(一)

本文 C语言入门详解&#xff1a;从基础概念到分支与循环1. C语言常见概念1.1 程序的基本结构1.2 变量作用域和存储类1.3 输入输出1.4 编译与运行 2. C语言中的数据类型和变量2.1 基本数据类型2.2 变量的声明与初始化2.3 常量与枚举 3. C语言的分支结构3.1 if语句3.2 if-else语句…

Python笔记 - 函数、方法和类装饰器

前言 装饰器最早出现是Python2.4版本&#xff0c;为什么这个版本开始存在&#xff1f;这是因为最早标记类方法的做法是&#xff1a; def foo(self):perform method operation foo classmethod(foo)当方法体过长的时候很容易让人忽略掉最后的语句classmethod(foo)&#xff0c…

Win10之解决:设置静态IP后,为什么自动获取动态IP问题(七十八)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

域内密码喷洒 Password Spray 实验

password spray 1. 实验网络拓扑 kali: 192.168.72.128win2008: 192.168.135.129 192.168.72.139win7: 192.168.72.149win2012:(DC) 192.168.72.131 2. 简单原理 Kerberos针对同一个用户&#xff0c;多次的密码尝试请求有锁定保护策略。 但是我们可以切换用户&#xff0c;…

【Streamlit案例】制作销售数据可视化看板

目录 一、案例效果 二、数据分析 三、加载数据 四、网站前端 &#xff08;一&#xff09;网页标题和图标 &#xff08;二&#xff09;侧边栏和多选框 &#xff08;三&#xff09;主页面信息 ​&#xff08;四&#xff09;主页面图表 &#xff08;五&#xff09;隐藏部…

基于四种网络结构的WISDM数据集仿真及对比:Resnet、LSTM、Shufflenet及CNN

在上节中&#xff0c;我们已经详细介绍了WISDM数据集及如何使用CNN网络训练&#xff0c;得到了六个维度的模型仿真指标及五个维度的可视化分析&#xff0c;那么现在我们将训练模型推广到其他网路结构中去&#xff0c;通过仿真实验来对比一下不同网络之间对于WISDM数据集的训练效…

【docker笔记8-镜像推送】

docker笔记8-镜像推送 一、基本命令二、案例1.Java demo2.打包镜像 一、基本命令 &#xff08;1&#xff09;推送镜像到远程仓库 docker tag local-image:tagname new-repo:tagname docker push new-repo:tagname这里首先要登录到docker&#xff0c;然后需要输入登录用户名和…

构建electron项目

1. 使用electron-vite构建工具 官网链接 安装构建工具 pnpm i electron-vite -g创建electron-vite项目 pnpm create quick-start/electron安装所有依赖 pnpm i其他 pnpm -D add sass scss1. 启动项目 2. 配置 package.json "dev": "electron-vite dev --…

【Spring】运行Spring Boot项目,请求响应流程分析以及404和500报错

1. 运行项目 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Appl…