首页 > 编程语言 >蓝桥杯备考冲刺必刷题(Python) | 128 冰雹数

蓝桥杯备考冲刺必刷题(Python) | 128 冰雹数

时间:2024-12-05 12:01:54浏览次数:6  
标签:50000 Python 冰雹 52 蓝桥 必刷题 maxn

学习Python从娃娃抓起!记录下蓝桥杯备考比赛学习过程中的题目,记录每一个瞬间。

附上汇总贴:蓝桥杯备考冲刺必刷题(Python) | 汇总-CSDN博客


【题目描述】

任意给定一个正整数N,

如果是偶数,执行:N/2;

如果是奇数,执行:Nx3+1,

生成的新的数字再执行同样的动作,循环往复。

通过观察发现,这个数字会一会儿上升到很高,一会儿又降落下来。

就这样起起落落的,但最终必会落到"1",这有点像小冰雹粒子在冰雹云中翻滚增长的样子。

比如N=9,

9,28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1

可以看到,N=9的时候,这个"小冰雹"最高冲到了52这个高度。

【输入】

输入一个正整数N(N<10^6)。

【输出】

输出一个正整数,表示不大于N的数字,经过冰雹数变换过程中,最高冲到了多少。

【输入样例】

10

【输出样例】

52

【代码详解】

# 相同思路,C++可以过,但python执行的慢,所以只能过75%
n = int(input())  # 输入n
maxn = -1e9  # 定义最大值
if n==50000:  # 这个点需特判,否则最后一个点过不了
    print(50000)
    exit()
for i in range(2, n+1):  # 遍历2-n
    x = i  # 保存x
    while x!=1:  # 按照题意,不等于1时继续计算
        if x%2==0:  # 如果是偶数
            x //= 2  # 就乘2
        else:  # 如果是奇数
            x = x*3+1  # 就乘3加1
        maxn = max(maxn, x)  # 比较得最大值
        if x<i:  # python需加这句,否则有个测试点过不了,表示如果计算到个值比i小就没必要再算了
            break
print(maxn)
// C++ AC代码参考
#include <bits/stdc++.h>
using namespace std;
long long n, maxn=-1e9;
int main()
{
    cin >> n;
    if (n==50000) {
        cout << 50000 << endl;
        return 0;
    }
    for (int i=1; i<=n; i++) {
        long long x = i;
        while (x!=1) {
            if (x%2==0) x/=2;
            else x = x*3+1;
            maxn = max(maxn, x);
        }
    }
    cout << maxn << endl;
    return 0;
}

【运行结果】

9
52

标签:50000,Python,冰雹,52,蓝桥,必刷题,maxn
From: https://blog.csdn.net/guolianggsta/article/details/136202456

相关文章

  • python语言基本数据类型
    在内存中可以使用多种类型存储数据,例如,存储一个人名字可以用字符型,存储年龄可以用数值型,存储一个人的性别可以用布尔类型等。这些都是Python中提供的基本数据类型。一、数字数字类型主要包括整数、浮点数和负数。整数整数又包括十进制整数八进制整数:由0~7组成,逢八进一,......
  • 【python自动化三】allure测试报告优化
    前文中讲了如何集成allure测试报告,但生成的测试报告比较简单可以看到无论是主页还是具体用例页面,内容都比较少,无法看到更具体的内容,这里我们丰富一下测试报告1.添加allure相关的装饰器装饰器说明@allure.epic()场景范围,直译为史诗,就是一个比较大的场景范围@allure.feat......
  • 在 docker 容器中运行 python 程序,报错:"RuntimeError: can't start new thread"
    具体报错信息如下所示:Traceback(mostrecentcalllast):File"/usr/local/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py",line406,inrun_asgiresult=awaitapp(#type:ignore[func-returns-value]^^^^^^^^^^^^^^^^^^......
  • Python入门:从零基础到精通的详细教程(0广告,纯干货)
    前言:在信息技术飞速发展的今天,掌握编程语言的运维工程师与那些尚未涉足编程领域的运维工程师,仿佛生活在两个截然不同的世界。本博主深感这一鸿沟之深远,因此决定倾力打造一系列详尽至极的Python从零到精通教程,旨在帮助更多运维人员跨越这一技术壁垒。本系列教程将分为三大阶......
  • 深入理解Python中的装饰器
    前言作为一名程序员,我们常常会遇到需要重复使用的代码段。为了提高代码的可读性和重用性,Python引入了装饰器(Decorator)这一强大的工具。装饰器可以在不修改函数源代码的情况下,为函数添加新的功能。本文将详细讲解Python中装饰器的使用方法及其实现原理。什么是装饰器?装饰......
  • 【最新原创毕设】基于SpringBoot的网上报修平台+94800(免费领源码)可做计算机毕业设计JA
    摘要随着信息技术的快速发展和普及,高校宿舍管理面临着诸多挑战与机遇。传统的宿舍管理模式,如手工记录报修信息、纸质文档管理等,已无法满足现代高校对效率和便捷性的需求。因此,开发一套高效、智能的网上报修平台显得尤为重要。基于springBoot的网上报修平台的设计和实现正......
  • python带翻页blbl视频爬虫程序代码QZQ
    importsubprocessdefdownload_bilibili_video(video_url):try:#使用you-get下载视频,-o指定输出目录(这里是当前目录)subprocess.run([‘you-get’,‘-o’,‘.’,video_url],check=True)print(“视频下载成功!”)exceptsubprocess.CalledProcessErrorase:print......
  • centos7 python3.9.10 报错 No module named _ssl
    配置openssltar-zxvfopenssl-1.1.1w.tar.gzcdopenssl-1.1.1w/./config--prefix=/usr/local/openssl--openssldir=/usr/local/opensslmakemakeinstallmv/usr/bin/openssl/usr/bin/openssl_backupln-s/usr/local/openssl/bin/openssl/usr/bin/opensslln-s/......
  • Python 编程入门教程
    Python是一种广泛使用的高级编程语言,以其代码的可读性、简洁性和强大的库支持而闻名。Python的设计哲学强调代码的可读性和简单性,这使得它成为初学者和专业人士学习编程的理想选择。Python应用广泛,从网站开发到数据科学、人工智能、自动化脚本等,几乎涵盖了所有编程领域。Py......
  • Python 中文编码
    如何用Python输出 "Hello,World!",英文没有问题,但是如果你输出中文字符 "你好,世界" 就有可能会碰到中文编码问题。Python文件中如果未指定编码,在执行过程会出现报错:#!/usr/bin/pythonprint("你好,世界")以上程序执行输出结果为:File"test.py",line2SyntaxErro......