蓝桥杯—ALGO-12 幂方分解(递归递推)
2024-08-31 06:27:44
问题描述
任何一个正整数都可以用2的幂次方表示。例如:
137=27+23+20
同时约定方次用括号来表示,即ab 可表示为a(b)。
由此可知,137可表示为:
2(7)+2(3)+2(0)
进一步:7= 22+2+20 (21用2表示)
3=2+20
所以最后137可表示为:
2(2(2)+2+2(0))+2(2+2(0))+2(0)
又如:
1315=210 +28 +25 +2+1
所以1315最后可表示为:
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
输入格式
输入包含一个正整数N(N<=20000),为要求分解的整数。
输出格式
程序输出包含一行字符串,为符合约定的n的0,2表示(在表示中不能有空格)
分析:递归
代码:
#include<iostream>
#include<cmath>
using namespace std;
int N;
void solve(int v) {
while(v) {
if(v == ) { printf(""); break; }
if(v == ) { printf("2(0)"); break; }
int i = ;
int a = ;
while(a <= v) {
a *= ;
i++;
}
printf("");
if(i != ) {
printf("(");
solve(i);
printf(")");
}
v -= pow(, i);
if(v) printf("+");
}
}
int main() {
cin >> N;
solve(N);
return ;
}
最新文章
- 数据库中老师学生家长表添加自动同意好友自动(AgreeAddingFriend ),默认为True
- JAVAWEB学习总结 HTTPSERVLETRESPONSE对象(二)
- win10突然不能使用usb大容量存储设备(移动硬盘)的解决方法
- Axios、Lodash、TweenJS
- html tr td colspan
- https_request
- openwrt time sycronize
- TodoList开发笔记 – PartⅠ
- 【bird-java】bird-java概述
- print,printf,println
- 【Linux基础】grep命令
- 「HGOI#2019.4.19省选模拟赛」赛后总结
- css3 二级菜单
- keepalived高可用系列~通用基础
- Windows文件共享自动失效解决办法
- 液晶电视插有线电视信号线的是哪个接口 HDMI是什么接口
- 免费桌面视频录像工具OBS的简单操作介绍
- Spring Cloud Netflix项目进入维护模式
- javac编译出来的程序运行报错“错误: 找不到或无法加载主类”
- python脚本5_求素数
热门文章
- switch to hexo !
- 20145334赵文豪《网络攻防》 MSF基础应用
- jQuery:ajax处理html页面
- 【第十一章】 springboot + mongodb(简单查询)
- Java中ArrayList和LinkedList区别 时间复杂度 与空间复杂度
- linux之cut用法--转载
- hdu 1325 Is It A Tree? 并查集
- bugfree 数据库配置 显示No such file or directory
- [原][JSBSim]基于qt代码实现:TCP|UDP与飞行模拟软件JSBSim的通信,现实模型飞行!
- 浏览器滚动条及其影响 calc()