//注意2 不要写成 2(2(0))
#include<stdio.h>
#include<string.h>
int sh[15]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384};
void f(int n){
if(n == 1) {printf("2(0)"); return ;}
if(n == 2) {printf("2"); return ;}
int i = 14, j = n;
while(i >= 1){
if(j - sh[i] >= 0){
printf("2");
if(i > 1){
printf("(");
f(i);
printf(")");
}
j -= sh[i];
if(j) printf("+");
f(j);
return ;
}
i--;
}
}
int main(){
int n;
scanf("%d", &n);
f(n);
printf("\n");
return 0;
}
蓝桥杯 2的次幂
最新推荐文章于 2018-03-18 17:25:15 发布