当前位置: 首页 > news >正文

python-3n+1数链/233

一:3n+1数链
题目描述
在计算机科学上,有很多类问题是无法解决的,我们称之为不可解决问题。然而,在很多情况下我们并不知道哪一类问题可以解决,哪一类问题不可解决。现在我们就有这样一个问题,问题如下:
(11) 输入一个正整数 n;
(22) 把 n 显示出来;
(33) 如果 n=1 则结束;
(44) 如果 n 是奇数则 n 变为 3n+1,否则 n 变为 n/2;
(55) 转入第(2)步。
例如对于输入的正整数 22,应该有如下数列被显示出来: 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 我们推测:对于任意一个正整数,经过以上算法最终会推到 1 。尽管这个算法很简单,但是我们仍然无法确定我们的推断是否正确。不过好在我们有计算机,我们验证了小于 1000000 的正整数都满足以上推断。
对于给定的正整数 n,我们把显示出来的数的个数定义为 n 的链长,例如 22 的链长为 16。 你的任务是编写一个程序,对于任意一对正整数 i 和 j,给出i与j之间的最长链长,当然这个最长链长是由 i 与 j 之间的其中一个正整数产生的。我们这里的 i 与 j 之间即包括 i 也包括 j 。
输入格式
输入包含多组数据,每行分别是 i,j 的值。
输出格式
输出i到j区间中的(包括 i 和 j )数链最长的长度,每行一个。
样例输入输出
样例输入

1 10
样例输出
20
数据范围
对于 100% 的数据,保证 0<i≤j<10000
来源/分类(难度系数:二星
模拟 递归

 


完整代码展示:
def length_list(n):
       sum=1
       while n!=1:
              if n%2==0:
                    n=n/2
                    sum+=1
              else:
                     n=3*n+1
                     sum+=1
       return sum
i,j=map(int,input().split())
list_1=[]
for k in range(i,j+1):
      list_1.append(length_list(k))
list_1.sort()
print(list_1[-1])

def length_list(n):sum=1while n!=1:if n%2==0:n=n/2sum+=1else:n=3*n+1sum+=1return sum
i,j=map(int,input().split())
list_1=[]
for k in range(i,j+1):list_1.append(length_list(k))
list_1.sort()
print(list_1[-1])

 


代码解释:
“def length_list(n):
        sum=1
        while n!=1:
               if n%2==0:
                     n=n/2
                     sum+=1
              else:
                     n=3*n+1
                     sum+=1
       return sum         ”,自定义一个函数length_list(),按照题目所给的数链的定义计算形参n的链长sum,并返回链长值sum。
“i,j=map(int,input().split()) ”,导入用户输入的给定的区间限定值i和j。
“list_1=[]
 for k in range(i,j+1):
       list_1.append(length_list(k)) ”,建立一个空列表list_1,接着遍历i~j的所有数字k,利用length_list函数计算出k的链长。将该链长添加进list_1中。
“list_1.sort()
 print(list_1[-1]) ”,对list_1中元素进行升序排序,接着打1印list_1中的最后一个元素90(即最长数链)。

 


运行效果展示:

1de1753a0fe74593aaaf6a5f612552c3.jpg

9adc1b46ed374ac8a470f035e24871bf.jpg 

 

 

 

 

二:233
题目描述
小理聊天的时候非常喜欢发 “ 233 ”,“ 233 ”来源于猫扑表情第 233 号,是一张捶地大笑的表情。
小理每当看到很好玩的消息的时候总会回一串“ 233... ”。小理其实十分高冷,他发现了这个问题。为了不希望别人立刻知道他在笑,他决定将两个“ 233.. ”乘在一起发出去。
输入格式
输入样例有多组,全部是正整数。首先输入样例组数 T 。
接下来输入T组数,每组数字由两个 233 串组成,每个 233 串长度为 n 。
数据保证每个 233 串必然会有一个 2 作为开头,并且 3 的数量 ≥2 。
输出格式
两个 233 串的乘积。
样例输入输出
样例输入
2
233 233
23333333333333333333333333333333333333333333333333 23333333333333333333333333333333333333333333333333
样例输出
54289
544444444444444444444444444444444444444444444444428888888888888888888888888888888888888888888888889
数据范围
对于 100% 的数据,保证 1≤T≤1500,3≤n≤50 。
来源/分类(难度系数:二星
函数 高精度 模拟 

 


完整代码展示:
def oho(i,j):
       return i*j
n=int(input())
list_1=[]
for k in range(n):
      i,j=map(int,input().split())
      list_1.append(oho(i,j))
for l in range(0,len(list_1)):
      print(list_1[l])

def oho(i,j):return i*j
n=int(input())
list_1=[]
for k in range(n):i,j=map(int,input().split())list_1.append(oho(i,j))
for l in range(0,len(list_1)):
print(list_1[l])

 


代码解释:
“def oho(i,j):
        return i*j ”,自定义一个函数oho(),传递两个形参i,j,接着返回i*j的值。
“n=int(input()) ”,导入用户的输入的样例组数n。
“list_1=[]
 for k in range(n):
       i,j=map(int,input().split())
       list_1.append(oho(i,j)) ”,建立一个空列表list_1,循环n次:导入用户输入的同组的两个数。并将其利用oho()函数计算的返回值添加进list_1中。
“for l in range(0,len(list_1)):
       print(list_1[l]) ”,遍历list_1中元素list_1[i],并打印。

 


运行效果展示:

6256629b2d6240f887f907b20c9b70e0.jpg

3c20e731cbfd4bf8a10ac29aa3700adc.jpg 

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

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2024最新!!!iOS高级面试题,全!(一)
  • 关于安卓App自动化测试的一些想法
  • ZYNQ FPGA自学笔记~操作PLL
  • 【学习笔记】 使用AD24完成相同电路的自动布线布局(相同模块布局布线ROOM布线快速克隆)
  • postgres_fdw访问存储在外部 PostgreSQL 服务器中的数据
  • 音频北斗定位系统有什么用?
  • Python使用虚拟环境解决依赖冲突
  • 代码随想录算法day37 | 动态规划算法part10 |
  • STM32F407单片机编程入门(十一) ESP8266 WIFI模块实战含源码
  • C#_封装详解
  • Java反序列化利用链篇 | CC6链分析(通用版CC链)
  • windows下,用docker部署xinference,为什么老是提示localhost无法访问?
  • 记录一下,Vcenter清理/storage/archive空间
  • 计算Rocksdb每10秒下刷到L0的数据大小
  • VCNet论文阅读笔记
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • avalon2.2的VM生成过程
  • Computed property XXX was assigned to but it has no setter
  • Consul Config 使用Git做版本控制的实现
  • iOS 系统授权开发
  • Javascript编码规范
  • js中的正则表达式入门
  • Linux链接文件
  • PhantomJS 安装
  • Python socket服务器端、客户端传送信息
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Spring框架之我见(三)——IOC、AOP
  • SpriteKit 技巧之添加背景图片
  • zookeeper系列(七)实战分布式命名服务
  • 编写高质量JavaScript代码之并发
  • 前端性能优化——回流与重绘
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 深入浅出Node.js
  • 使用Gradle第一次构建Java程序
  • 我的zsh配置, 2019最新方案
  • raise 与 raise ... from 的区别
  • Spring Batch JSON 支持
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​字​节​一​面​
  • # Redis 入门到精通(七)-- redis 删除策略
  • #pragma once与条件编译
  • (9)目标检测_SSD的原理
  • (C++20) consteval立即函数
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (全注解开发)学习Spring-MVC的第三天
  • (十)Flink Table API 和 SQL 基本概念
  • (四)stm32之通信协议
  • (学习总结16)C++模版2
  • (一)VirtualBox安装增强功能