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

蓝桥杯 6. 冰雹数

冰雹数

原题目链接

题目描述

任意给定一个正整数 N

  • 如果是偶数,执行:N / 2
  • 如果是奇数,执行:N × 3 + 1

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

观察发现,这个数字会一会儿上升到很高,一会儿又降下来。就这样起起落落,但最终必定会落到 1

这种过程形象地被称为小冰雹数列

例如,当 N = 9 时,数列为:

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

可以看到,小冰雹序列中最高冲到了 52


输入描述

  • 输入一个正整数 NN < 10⁶)。

输出描述

  • 输出一个正整数,表示 不大于 N 的所有数字,在冰雹数变换过程中,能达到的最大高度

输入输出样例

示例

输入

10

输出

52

c++代码

#include<bits/stdc++.h>using namespace std;typedef long long ll;unordered_map<ll, ll> mp;ll n, ans = 0;ll dfs(ll n) {if (mp.find(n) != mp.end()) return mp[n];ll res;if (n == 1) res = 1;else if (n % 2 == 0) res = max(n, dfs(n / 2));else res = max(n, dfs(3 * n + 1));mp[n] = res;return res;
}int main() {cin >> n;for (int i = 1; i <= n; i++) ans = max(ans, dfs(i));cout << ans;return 0;
}//by wqs

思路解析

要用map记录已经算出的值,不要算第二次,否则超时。

http://www.dtcms.com/a/155742.html

相关文章:

  • 2025年大语言模型平台、主流模型及Token价格的综合对比分析报告
  • freeswitch配置视频对接
  • Java对象转换的多种实现方式
  • 面向高性能运动控制的MCU:架构创新、算法优化与应用分析
  • Postman-win64-7.2.2 安装教程(Windows 64位详细步骤)
  • 51.[前端开发-JS实战框架应用]Day02-jQuery的属性操作-DOM操作和动画
  • 【刷题Day26】Linux命令、分段分页和中断(浅)
  • CI/CD自动化部署(持续集成和持续交付/部署)
  • 小白学习java第15天:JDBC
  • 【高频考点精讲】CSS accent-color属性:如何快速自定义表单控件的颜色?
  • 基于深度学习的图像压缩技术(一)
  • 【java源码】AI智能导诊系统,基于H5、小程序、app等多端,引导患者自助就诊挂号,实现科学就诊
  • 学习整理在centos7上安装mysql8.0版本教程
  • 缓存与数据库一致性深度解析与解决方案
  • WSL2-自定义安装
  • 大模型提示词如何编写
  • FreeRTOS
  • FerretDB:基于PostgreSQL的MongoDB替代产品
  • 【QQMusic项目界面开发复习笔记】第二章
  • 【电路笔记】-多绕组变压器
  • 59、微服务保姆教程(二)Nacos--- 微服务 注册中心 + 配置中心
  • OS库的常用操作
  • 分布式定时任务(xxl-job)
  • FreeRTOS学习笔记【10】-----任务上下文切换
  • 学生管理系统微服务方式实现
  • SQLAlchemy 2.x 异步查询方法比较
  • Rust 学习笔记:函数和控制流
  • tcp 和http 网络知识
  • 详解 Servlet 处理表单数据
  • 向量数据库实践:存储和检索向量数据