题目链接:http://lx.lanqiao.cn/problem.page?gpid=T235

问题描述
任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。
  将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=2^7+2^3+2^0
  现在约定幂次用括号来表示,即a^b表示为a(b)
  此时,137可表示为:2(7)+2(3)+2(0)
  进一步:7=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)
输入格式
正整数(1<=n<=20000)
输出格式
符合约定的n的0,2表示(在表示中不能有空格)
样例输入
137
样例输出
2(2(2)+2+2(0))+2(2+2(0))+2(0)
样例输入
1315
样例输出
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
提示
用递归实现会比较简单,可以一边递归一边输出
思路:记录二进制表示中是1的权值,然后按权值记录编号,进行递归输出。
#include<iostream>
#include<cstdio>
#include<ctype.h>using namespace std;void mi(int n){int ans=0;int x;int a[32];//存储32位整数 int i=0;while(n){x=n%2;if(x==1){a[ans++]=i;}++i;n/=2;}for(i=ans-1; i>=0; --i){if(a[i]==0){printf("2(0)");}else if(a[i]==1){printf("2");}else if(a[i]==2){printf("2(2)");}else if(a[i]>=3){printf("2(");mi(a[i]);printf(")");}if(i!=0) printf("+");}
}int main(){int n;while(scanf("%d",&n)!=EOF){mi(n);printf("\n");}return 0;
} 

蓝桥杯-算法训练 2的次幂表示相关推荐

  1. 蓝桥杯算法训练_2的次幂表示+前缀表达式+Anagrams问题+出现次数最多的整数

    今天做了4个简单的题,题目虽然是简单,但是对于我这样的小白,还是有很多东西需要学习的. 2的次幂表示 上面就是题目,题目说的也很清晰了,接下来就是递归的实现: 1 #include<iostre ...

  2. 蓝桥杯 算法训练 幸运的店家

    蓝桥杯 算法训练 幸运的店家 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 炫炫开了一家商店,卖的货只有一个,XXX,XXX卖N元钱.有趣的是,世界上只有面值为3的幂的纸 ...

  3. 蓝桥杯 算法训练 Beaver's Calculator

    蓝桥杯 算法训练 Beaver's Calculator 问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator ...

  4. 蓝桥杯 算法训练 印章

    蓝桥杯 算法训练 印章 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入输出: 一行两个正整数n和m 一个实数P表示答案,保留4位小数. 样例: 2 3 ...

  5. 蓝桥杯算法训练-24点(Python)

    问题描述 24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数字(其中A代表1,J代表11,Q代表12,K代表13),你可以利用数学中的加.减.乘.除以及括号想办法得到24, ...

  6. 蓝桥杯——算法训练——数字三角形

    蓝桥杯--算法训练--数字三角形 这道题不难,但是比较典型,可以作为动态规划(dp)的入门篇,属于线性dp(LIS,LCS和数字三角形都是此类题型). ------------------------ ...

  7. 蓝桥杯算法训练-强力党逗志芃

    持续更新蓝桥杯算法训练题解,有兴趣可以关注一波呀 题目 逗志芃励志要成为强力党,所以他将身上所以的技能点都洗掉了重新学技能.现在我们可以了解到,每个技能都有一个前提技能,只有学完了前提技能才能学习当前 ...

  8. 蓝桥杯 算法训练 逗志芃的危机

    蓝桥杯 算法训练 逗志芃的危机 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 逗志芃又一次面临了危机.逗志芃的妹子是个聪明绝顶的人,相比之下逗志芃就很菜了.现在她妹子要和 ...

  9. 蓝桥杯算法训练-过河马

    蓝桥杯算法训练题解有兴趣的可以支持下. 题目 问题描述 在那个过河卒逃过了马的控制以超级超级多的走法走到了终点之后,这匹马表示它不开心了-- 于是,终于有一天,它也过河了! 由于过河马积累了许多的怨念 ...

最新文章

  1. stm32怎么用keil软件进行仿真?(必需掌握的技能)
  2. 使用github管理Eclipse分布式项目开发
  3. 在香蕉派 Banana Pi BPI-M1上使用 开源 OxOffice Impress
  4. 逻辑斯蒂回归与最大熵模型---最大熵模型
  5. 由DOOM启示录想到微软的发展。
  6. android隐藏root环境,Android安全检查之Root环境检测
  7. 学习游戏服务器编程基础篇
  8. 清华大学计算机夏文韬,太猛了--南京外国语学校2007届高三毕业生去向
  9. 医学影像中的基础知识
  10. centos 安装virt-mannager
  11. 三菱PlC计数器与定时的使用
  12. ios降级鸿蒙,iOS 降级 13.3 系统方法,你成功了没
  13. 短信验证码被盗刷了怎么办?
  14. 沧小海笔记本之xilinx srio核的学习记录之目录
  15. 语义计算_语义多态性如何在量子计算中起作用
  16. React 中闭包陷阱问题分析
  17. sa结构组网方式_中兴解读:SA组网解决方案
  18. Python自然语言处理实战(1):NLP基础
  19. uni-app 使用 iconfont
  20. Java 微信支付接口(统一下单,异步回调,订单退款,取消订单)

热门文章

  1. Android小结(1)
  2. 神策 FM | 科学创造「高价值」人生,终止“瞎忙”式勤奋
  3. 瞎说系列之Object.assign入门
  4. redux-form(V7.4.2)笔记(二)
  5. java 网站源码 四套模版 兼容手机平板PC 在线编辑模版 freemaker 静态引擎
  6. Gson 使用总结 高级用法
  7. mongodb用户管理简单记录
  8. java基础-类加载学习笔记
  9. 使用Windows8开发Metro风格应用五
  10. gva explaination