1 条题解
-
0
C :
#include<stdio.h> #include<string.h> int t[4000]; int chang(int a[4000],int b) { int c=0; while(b!=0) { if(a[0]!=1) { if(a[b-1]%2==1) t[c]=1; else t[c]=0; for(int i=0; i<b; i++) { if(a[i]%2==1) { a[i+1]+=10; } a[i]=a[i]/2; } c++; } else { if(a[b-1]%2==1) t[c]=1; else t[c]=0; a[1]+=10; for(int i=1; i<b; i++) { if(a[i]%2==1) { a[i+1]+=10; } a[i-1]=a[i]/2; } a[b-1]=0; b=b-1; c++; } } return c; } int main() { char a[4000]; int b[4000],c,d,e[4000]; memset(t,0,sizeof(t)); memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(e,0,sizeof(e)); while(scanf("%s",a)!=EOF) { c=strlen(a); if(a[1]=='\0'&&a[0]=='0') { A1 : printf("0\n"); continue; } for(int i=0; i<c; i++) { b[i]=a[i]-48; } while(b[0]==0) { for(int i=0;i<c;i++) { b[i]=b[i+1]; } c--; if (c==0) goto A1; } d = chang(b,c); for(int i=0; i<d; i++) { e[i]=t[d-i-1]; } for(int i=0; i<d; i++) { printf("%d",e[i]); } printf("\n"); memset(t,0,sizeof(t)); memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); memset(e,0,sizeof(e)); } return 0; }
C++ :
#include<stdio.h> #include<string.h> char result[1000]; void base_convert(char num[],int s,int e) { int i,flag,k,j,a[1000],b[1000]; for(i=0;i<strlen(num);i++) a[i]=num[i]-48; k=0; while(1) { for(i=0;i<strlen(num);i++) { if(a[i]!=0&&i<strlen(num)-1) { a[i+1]+=(a[i]%e)*s; a[i]/=e; } if(i==strlen(num)-1) { b[k++]=a[i]%e; a[i]/=e; } } flag=0; for(i=0;i<strlen(num);i++) if(a[i]!=0) flag=1; if(!flag) break; } for(j=0,i=k-1;i>=0;i--) result[j++]=b[i]+48; result[j]='\0'; } int main() { char n[31]; while(scanf("%s",n)!=EOF) { base_convert(n,10,2); puts(result); } return 0; }
Pascal :
var a:string; function mod2(a:string):string; begin if odd(ord(a[length(a)]))then mod2:='1' else mod2:='0' end; function div2(a:string):string; var i:integer; begin div2:=''; for i:=1 to length(a) do begin if odd(ord(a[i])) then a[i+1]:=chr(ord(a[i+1])+10); div2:=div2+chr(ord(a[i])div 2+24) end; while pos('0',div2)=1 do delete(div2,1,1) end; function work(a:string):string; var r:string; begin r:=mod2(a); a:=div2(a); if a='' then work:=r else work:=work(a)+r end; begin while not eof do begin readln(a); writeln(work(a)) end end.
Java :
import java.math.BigInteger; import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner cin = new Scanner(System.in); while(cin.hasNext()){ System.out.println(new BigInteger(cin.next()).toString(2)); } } }
Python :
# coding=utf-8 import sys for line in sys.stdin.readlines(): print(bin(int(line)).replace('0b',''))
- 1
信息
- ID
- 1846
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者