转载请注明出处 [ametake版权所有]http://blog.csdn.net/ametake欢迎来看
任何一个正整数都可以用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)
正整数n
符合约定的n的0,2表示(在表示中不能有空格)
【输入样例1】
137
【输入样例2】
1315
【输出样例1】
2(2(2)+2+2(0))+2(2+2(0))+2(0)
【输出样例2】
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
n为2的指数<=1100586419200
直接上代码一看就懂
关键是先输出左括号,递归,输出右括号 这种经典格局
还有其他方法 里奥的lowbit啊什么的= =慢慢学
注意要用long long 吐槽4.9.9.2悲了个剧的编译器 和codevs奇怪的编译原理= =
上代码
——旧赏轻抛,到此成游宦
版权声明:本文为博主原创文章,未经博主允许不得转载。
【日常学习】【搜索/递归】codevs2802 二的幂次方题解
原文:http://blog.csdn.net/ametake/article/details/46873209