填空题
把一个数字表示成2进制的表示法,
例如137可以表示为2(7)+2(3)+2(0),其中2(7)表示2的7次方。
7可以继续表示为2(2)+2+2(0),
3可以继续表示为2+2(0)。
所以137可以表示为2(2(2)+2+2(0))+2(2+2(0))+2(0)。
#include <iostream>
#include <string>
using namespace std;
int n;
string IPS(int n) {
int rank[16], k = 0, k2 = 0;
while(____1____) {
if(n%2==1) k2++;
rank[++k] = n%2;
n /= 2;
}
string ans = "";
for(int i=k; i>=1; i--) {
if(rank[i]) {
if(i==2)
ans += "2";
else if(i==1&&rank[i]!=0)
ans += "2(0)";
else
ans = ans+"____2____("+IPS(____3____)+")";
if(k2!=1) {
ans += "____4____";
k2 ____5____;
}
}
}
return ans;
}
int main() {
cin >> n;
cout << IPS(n);
return 0;
}