1102: 十->二进制转换
Time Limit: 1 Sec Memory Limit: 128 MBDescription
将十进制整数转换成二进制数
Input
输入数据中含有不多于50个整数n(-2^16<n<2^16)。
Output
对于每个n,输出n值,然后输出“-->”,再然后输出二进制数。每个整数n的输出,独立占一行。
Sample Input
2
0
-12
1
Sample Output
2-->10
0-->0
-12-->-1100
1-->1
1 #include <stdio.h> 2 #include <math.h> 3 #include <stdlib.h> 4 int main() 5 { 6 int n; 7 while(scanf("%d",&n)!=EOF) 8 { 9 int m=n; 10 int i,j,t; 11 char a[1000]; 12 printf("%d-->",m); 13 for(i=0,t=0;; t++,i++) 14 { 15 if(n<0) 16 { 17 n=abs(n); 18 printf("-"); 19 } 20 a[i]=n%2; 21 n/=2; 22 if(n<1) 23 { 24 for(j=t; j>=0; j--) 25 { 26 printf("%d",a[j]); 27 } 28 printf("\n"); 29 break; 30 } 31 } 32 } 33 return 0; 34 }