1 #include<stdio.h> 2 int a[15]={1,2,4,8,16,32,64,128,256,516,1024,2048,4096,8192,16384};//用来判断n的大小 3 int main() 4 { 5 void fun(int n); 6 int m; 7 scanf("%d",&m); 8 fun(m); 9 return 0; 10 } 11 void fun(int n) 12 { 13 int i; 14 if(n==0) {printf("0");return;} 15 if(n==1) {printf("2(0)");return;} 16 if(n==2) {printf("2");return ;} 17 for(i=14;i>=0;i--)//循环判断输出 18 { 19 if(n>=a[i]) 20 { 21 n-=a[i];//新的n的值 22 if(i==1) 23 { 24 printf("2"); 25 } 26 27 else 28 { 29 printf("2("); 30 31 fun(i); 32 printf(")"); 33 } 34 if(n!=0) 35 printf("+"); 36 } 37 } 38 }
原文:http://www.cnblogs.com/aismvy/p/6361575.html