这个……

这个题看上去有点难的样子。

仔细看看,感觉有点简单。啊,是递归啊,正经的看一看,好像是把一个数分成2的几次方的和。

然后余数和比他小的最大的2的次方数如果不是2的一次方或者2的0次方,就继续递归。

仔细一想貌似很简单,只不过余数是在括号外面,商是在里面的,这种小事稍微写写就可以了。

直接代码吧,这题除了题意有点复杂以外还行……

#include<iostream>
#include<cstdio>
using namespace std;
long long m;
long long sz[20]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768};//电脑打的表,这个比无数次pow快多了
void dg(int n)
{
while(n!=0)//这整个循环是把n的余数继续拆。
{
for(int i=15;i>=0;i--)//这个是查看比他小的最大的2的次方数
{
if(sz[i]<=n)
{
n-=sz[i];
if(i==1)//这说明n是2或者3,反正都不需要括号
{
cout<<"2";
}else if(i==0)//这说明n就是1
{
cout<<"2(0)";
}else//这个需要括号,继续继续这里继续的是次方数
{
cout<<"2(";
dg(i);
cout<<")";
}
break;
}
}
if(n!=0)//后面还有余数,写个+
{
cout<<"+";
}
}
}
int main()
{
scanf("%lld",&m);
dg(m);
return 0;
}

这个还是很好理解的吧,不理解的请去看看样例读读题。

最新文章

  1. 烂泥:openvpn配置文件详解
  2. 【ASH】如何导出视图DBA_HIST_ACTIVE_SESS_HISTORY的查询结果数据
  3. MongoDB的安全(五)
  4. timer控件、三级联动
  5. CGI、FastCGI 知识总结
  6. 理解Linux中断 (1)【转】
  7. 《day17_String_StringBuffer》
  8. MemCache缓存和C#自带的Cache缓存
  9. Table XXX is marked as crashed and should be repaired问题
  10. MOS管常识
  11. python高阶函数式编程
  12. k8s健康检查(七)--技术流ken
  13. T-SQL基础(四)之集合运算
  14. 洛谷P1031
  15. 前台ajax传参数,后台spring mvc用对象接受
  16. Remmarguts&#39; Date POJ - 2449 (A*搜索|k短路)
  17. RESTEASY ,从学会使用到了解原理。
  18. 【Spark-core学习之七】 Spark广播变量、累加器
  19. 将MySQL数据库转移到SqlServer2008数据库
  20. 洛谷 P1181数列分段SectionI 【贪心】

热门文章

  1. 使用ssh连接数据库时出现Permission denied, please try again.解决方案
  2. Windows程序设计(2) -API-01 初识
  3. PHP丨PHP基础知识之流程控制WHILE循环「理论篇」
  4. MOJITO 发布一周,爬一波弹幕分析下
  5. c++运算符重及其调用
  6. Windows下6款实用软件(强烈推荐!)
  7. 13.DRF-版本
  8. 【解读】TCP三次握手和四次挥手
  9. c语音学习笔记
  10. 关于idea的一些快捷键