遞歸練習(xí)
2:2的冪次方表示
總時(shí)間限制:
1000ms
內(nèi)存限制:
65536kB
描述
由此可知,137可表示為:
2(7)+2(3)+2(0)
所以最后137可表示為:
2(2(2)+2+2(0))+2(2+2(0))+2(0)
又如:
1315=210+28+2^5+2+1
所以1315最后可表示為:
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
輸入
一個(gè)正整數(shù)n(n≤20000)。
輸出
一行,符合約定的n的0,2表示(在表示中不能有空格)。
樣例輸入
137
樣例輸出
2(2(2)+2+2(0))+2(2+2(0))+2(0)
#include <iostream>
using namespace std;
int GetBit(int n,int i){
return (n>>i)&1;
}
void Print(int n){
int first=1;
for(int i=15;i>=0;--i){
if(GetBit(n,i)){
if(!first){
cout<<"+";
}else{
first=0;
}
if(i==0){
cout<<"2(0)";
}
else if(i==1){
cout<<"2";
}
else {
cout<<"2(";
Print(i);
cout<<")";
}
}
}
}
int main(){
int n;
cin>>n;
Print(n);
return 0;
}