http://lx.lanqiao.cn/problem.page?gpid=T72
#include <iostream> using namespace std; int n; void print(int n) { bool flag=false; for(int i=30;i>=0;i--) { int c=(n>>i)&1;//从高位开始 if(c) { //前面有表达式就有加号 if(flag) printf("+"); if(i==1) printf("2"); else if(i==0) printf("2(0)"); else { printf("2("); print(i); printf(")"); } if(flag==false) flag=true; } } } int main() { while(cin>>n) { print(n); printf("\n"); } return 0; }
时间: 2024-10-19 04:05:26