#include<bits/stdc++.h>
using namespace std;
int pown(int n) {
int cnt = 0;//幂数
int num = 1;
while(num <= n) {
num <<= 1;
cnt++;
}
cnt--;
if(cnt == 0) cout<<"2(0)";//若幂数为0输出“2(0)”
if(cnt == 1) cout<<2;
if(cnt > 1) {
cout<<2<<"(";
pown(cnt);
cout<<")";
}
int rest = n - (1<<cnt);
if(rest != 0) {//若剩余的不为0那么打印‘+’之后进入递归
cout<<"+";
pown(rest);
}
}
void print() {
}
int main() {
int n;
cin>>n;
pown(n);
return 0;
}
洛谷P1010,幂次方
最新推荐文章于 2024-09-18 12:52:19 发布