#include<iostream> #include<cstdio> using namespace std; void fun(int n) { int a[30]; int num=0,r; int i=0; while(n) { r=n%2; if(r==1) a[num++]=i;//1的位置。 i++; n=n/2; } for(i=num-1;i>=0;i--) { if(a[i]==0) { printf("2(0)"); } else if(a[i]==1) { printf("2"); } else if(a[i]==2) { printf("2(2)"); } else { printf("2("); fun(a[i]); printf(")"); } if(i!=0) printf("+"); } } int main() { int n; scanf("%d",&n); fun(n); return 0; }
原文:http://www.cnblogs.com/cancangood/p/4340390.html