博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ALGO-12_蓝桥杯_算法训练_幂方分解(递归)
阅读量:4882 次
发布时间:2019-06-11

本文共 1033 字,大约阅读时间需要 3 分钟。

问题描述  任何一个正整数都可以用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表示(在表示中不能有空格)

 

AC代码:

1 #include 
2 #include
3 #define M 2 4 5 void dfs(int x) 6 { 7 int i; 8 while (x != 0 && x != 2) 9 {10 printf("%d",M);11 for (i = 0 ; pow(M,i+1) <= x ; i ++); 12 if (i != 1)13 {14 printf("(");15 dfs(i);16 printf(")");17 }18 x -= pow(M,i);19 if (x == 0)20 {21 return ;22 }23 printf("+");24 } 25 printf("%d",x);26 return ;27 }28 29 int main(void)30 {31 int n;32 scanf("%d",&n);33 dfs(n);34 return 0;35 }

 

转载于:https://www.cnblogs.com/mind000761/p/8650741.html

你可能感兴趣的文章
09年电子竞赛参赛技巧经验11条(转载)
查看>>
CSS颜色
查看>>
前端自动化之(一)—浏览器自动实时刷新
查看>>
Unity 摄像头竖屏预览显示的问题
查看>>
HDU 5115 Dire Wolf(区间dp)
查看>>
C# 程序配置文件的操作(ConfigurationManager的使用)
查看>>
Springmvc完成分页的功能
查看>>
JComboBox实现当前所选项功能和JFrame窗口释放资源的dispose()方法
查看>>
tp 引入phpexcel 进行单表格的导入,在线浏览
查看>>
jsp基础速成精华讲解
查看>>
URL to Blob
查看>>
bzoj 3643: Phi的反函数
查看>>
BizTalk Server 2009 Beta初体验
查看>>
HTML中解决双击会选中文本的问题
查看>>
3.单例模式-singleton
查看>>
说说Vue.js的v-for
查看>>
Java第四次作业
查看>>
屏幕录像软件 (Desktop Screen Recorder)
查看>>
【codevs1069】关押罪犯
查看>>
iOS 设计模式之单例
查看>>