#include<iostream>
#include<cmath>
using namespace std;
void fen(int x) {
for (int i = 14; i >= 0; i--)
{
if (pow(2, i) <= x) {
if (i == 0) {
cout << "2(0)";
}
else if (i == 1) {
cout << 2;
}
else {
int part1 = pow(2, i);// 即为2^i,后面只需再次分割i
cout << "2(";
fen(i);//运行到这一步开始往上建栈,后面的步骤要等到这个函数执行完后才执行,所以最后fen(i)会被括号包起来
cout << ')';
}
int part2 =(x -= pow(2, i));//剩下的部分(如果有的话),还需再分割
if (part2) {
cout << '+';
}
}
}
}
int main() {
int n; cin >> n;
fen(n);
return 0;
}
P1010-幂次方
于 2024-01-16 18:49:41 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)