题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=2051
题目描述:输入为一个整数,但输出的二进制很容易超出范围,所以改用字符串进行输出
一、这道题输入的整数会存在负数,所以注意对输入进行判断
二、对二进行取余,跟大数相加一样,先产生的是末端,所以输出时要倒着输出
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{int n,i;
char a[10000];
while(scanf("%d",&n)!=EOF){
i=0;
if(n<0){n=abs(n);
printf("-");}
while(n>0)
{
a[i]=n%2+48;
n=n/2;
i++;}
n=i-1;
for(i=n;i>=0;i--)
printf("%c",a[i]);
printf("\n");
}}