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

题解:洛谷 P1010 [NOIP 1998 普及组] 幂次方

【题目来源】

洛谷:P1010 [NOIP 1998 普及组] 幂次方 - 洛谷 (luogu.com.cn)

【题目描述】

任何一个正整数都可以用 \(2\) 的幂次方表示。例如 \(137=2^7+2^3+2^0\)

同时约定次方用括号来表示,即 \(a^b\) 可表示为 \(a\)\((\)\(b\)\()\)

由此可知,\(137\) 可表示为 \(2(7)+2(3)+2(0)\)

进一步:

\(7=2^2+2^2+2^0\) ( \(2^1\)\(2\)表示),并且\(3=2+2^0\)

所以最后 \(137\) 可表示为 \(2(2(2)+2+2(0))+2(2+2(0))+2(0)\)

又如 \(1315=2^{10}+2^8+2^5+2+1\)

所以 \(1315\) 最后可表示为 \(2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)\)

【输入】

一行一个正整数 \(n\)

【输出】

符合约定的 \(n\)\(0,2\) 表示(在表示中不能有空格)。

【输入样例】

1315

【输出样例】

2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)

【解题思路】

image

【算法标签】

《洛谷 P1010 幂次方》 #数学# #分治# #NOIP普及组# #1998#

【代码详解】

#include <bits/stdc++.h>  // 包含标准库头文件
using namespace std;int mark[20] = {1};  // 存储2的幂次方值,初始化为1(2^0)// 递归函数,将数字n表示为2的幂次方和的形式
void f(int n) 
{int flag = 0;  // 用于标记最大的幂次// 找到不超过n的最大2的幂次方while (n >= mark[flag]) flag++;flag--;  // 回退到合适的幂次// 根据不同的幂次进行输出if (flag == 1) cout << "2";  // 2^1直接输出2else {if (flag == 0) cout << "2(0)";  // 2^0输出2(0)else {cout << "2(";  // 更高次幂需要递归处理f(flag);       // 递归处理幂次cout << ")";}}// 减去已处理的部分,继续处理剩余数值n -= mark[flag];if (n != 0) {cout << "+";  // 还有剩余数值时输出加号f(n);         // 递归处理剩余部分}
}int main() 
{int n;  // 输入的数字cin >> n;// 预计算2的0到16次方for (int i = 1; i < 17; i++) mark[i] = mark[i - 1] * 2;// 调用递归函数进行分解f(n);return 0;  // 程序正常结束
}

【运行结果】

137
2(2(2)+2+2(0))+2(2+2(0))+2(0)
http://www.jsqmd.com/news/389959/

相关文章:

  • 题解:洛谷 P1259 黑白棋子的移动
  • 完整教程:CI/CD 核心原则 + 制品管理全解析:落地要求 + 存储方案
  • 题解:洛谷 P3612 [USACO17JAN] Secret Cow Code S
  • 题解:洛谷 P1498 南蛮图腾
  • 题解:洛谷 P1228 地毯填补问题
  • 探索CNN - BILSTM - Attention多特征分类预测:Matlab实现与分析
  • 实测才敢推!更贴合研究生需求的降AIGC软件 千笔·专业降AI率智能体 VS 灵感风暴AI
  • 真的太省时间! 降AIGC工具 千笔·专业降AI率智能体 VS 学术猹 本科生专属
  • 题解:洛谷 P1990 覆盖墙壁
  • 写作小白救星:AI论文工具 千笔AI VS Checkjie,专科生专属神器!
  • 生产环境【Kotlin系列15】多平台开发实战:一次编写,多端运行最佳实践与性能优化
  • 关闭Edge浏览器的“两指在触控板上往左滑是后退;往右划是前进”
  • 【日语学习-日语知识点小记-日本語体系構造-JLPT-N2前期阶段-第一阶段(13):単語文法】
  • 题解:洛谷 P2437 蜜蜂路线
  • 题解:洛谷 P1928 外星密码
  • 题解:洛谷 P1164 小A点菜
  • 深入解析:Hologres Dynamic Table 在淘天价格力的业务实践
  • 题解:洛谷 P1464 Function
  • 标准 Hough 变换、修正 Hough 变换和序列 Hough 变换三种典型航迹起始算法研究附Matlab代码
  • 交稿前一晚!8个降AIGC工具测评:自考降AI率必备攻略
  • 差分进化算法(DE)与缩放因子自适应差分进化(SHADE)在CEC2005函数寻优中的性能研究附Matlab代码
  • 这次终于选对!8个AI论文平台测评:本科生毕业论文写作必备工具推荐
  • WOA-SVM时序预测模型研究——基于鲸鱼优化算法的支持向量机时序预测方法附Matlab代码
  • 表贴式PMSM的直接转矩控制(DTC)仿真模型附Simulink仿真
  • 比较CVaR最优投资组合与均值-方差投资组合以及其他模型,包括全局最小方差(GMVP)和市场投资组合附Matlab代码
  • 这次终于选对!8个一键生成论文工具:自考毕业论文+开题报告高效写作测评
  • 题解:洛谷 P1028 [NOIP 2001 普及组] 数的计算
  • 2026年IEEE IOTJ SCI2区TOP,面向关键节点感知的灾害区域无人机集群路径规划,深度解析+性能实测
  • 2026年上班族香港优才靠谱品牌指南:从政策落地到全周期服务对比 - 速递信息
  • 采用单极表面电荷密度方法数值计算长且均匀磁化圆柱体极尖间气隙的磁场,并与类似点磁单极的近似方法进行比较附Matlab代码