P1010 幂次方(优雅分治)
程序员文章站
2022-05-08 22:42:37
...
#include<bits/stdc++.h>
using namespace std;
string run(int x,int i=0,string s=string("")){
if(x==0)return ("0");
do{
if(x&1){
s = ( i==1 ? "2" : "2(" + run(i) + ")" ) + ( s == "" ? "" : "+" ) + s ;
//1. 2^1用2表示
//2. s不为空的话 要有个加号 再加上s 否则就加上空串
//3. 低次方接在后面
}
}while(++i,x>>=1);//二进制分解
return s;
}
int main(){
int n;
scanf("%d",&n);
cout<<run(n)<<endl;
}
上一篇: [分治算法]P1010 幂次方
下一篇: 【洛谷】P1010 幂次方(分治+递归)