当前位置: 首页 > 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记录已经算出的值,不要算第二次,否则超时。

相关文章:

  • 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项目界面开发复习笔记】第二章
  • 【电路笔记】-多绕组变压器
  • 上海经信委:将推动整车企业转型,加强智能驾驶大模型等创新应用
  • 文庙印象:一周城市生活
  • 国家市场监管总局:组织销毁侵权假冒服装、食药等3300吨
  • 潘功胜:央行将实施好适度宽松的货币政策,推动中国经济高质量发展
  • 秦洪看盘|避险情绪升温,短线或延续相对钝化状态
  • 生于1982年,孙晋出任共青团广西壮族自治区委员会书记