1 //这是自己写的代码。。。很蠢,下附一dalao代码,又少,又快。。。。 2 #include<stdio.h> 3 int ant(int,int); 4 void ans(int,int); 5 int main() 6 { 7 int n; 8 while(~scanf("%d",&n)) 9 { 10 if(n<2) 11 { 12 if(n) 13 puts("1"); 14 else 15 puts("0"); 16 continue; 17 } 18 int t=1; 19 ans(n,ant(t,n)); 20 } 21 } 22 23 int ant(int t,int n) 24 { 25 if(t<=n) 26 ant(t*2,n); 27 else 28 return t/2; 29 } 30 31 void ans(int n,int t) 32 { 33 if(!t) 34 { 35 puts(""); 36 return; 37 } 38 else 39 { 40 printf("%d",n/t); 41 ans(n%t,t/2); 42 } 43 } 44
1 //递归之美 2 #include<stdio.h> 3 void ans(int); 4 int main() 5 { 6 int n; 7 while(~scanf("%d",&n)) 8 { 9 ans(n); 10 puts(""); 11 } 12 } 13 14 void ans(int n) 15 { 16 if(n>1) 17 ans(n>>1); 18 putchar(‘0‘+n%2); 19 return ; 20 }
原文:http://www.cnblogs.com/qq188380780/p/6360661.html