1 条题解
-
0
C++ :
#include <cstdio> #include <cstring> int main(void) { int n, i, j, d, flag=0, base[3]= {2,8,16}, A[32]; scanf("%d", &n); if(n<0) flag = 1, n = 0-n; for(i=0; i<3; ++i) { memset(A, 0, sizeof(A)); for(j=0, d=n; d>0; ++j, d/=base[i]) A[j] = d%base[i]; if(flag) printf("-"); for(--j; j>=0; --j) { if(A[j]<10) printf("%d", A[j]); else printf("%c", A[j]-10+'A'); } printf("(%d)\n", base[i]); } return 0; }
Pascal :
program t0207; type arr=array[1..50] of char; var a:arr; n:longint; i,len:integer; fg:boolean; // function jzzh2(n:integer;jz:integer):arr; var b:arr; i,t:integer; begin i:=1; fillchar(b,sizeof(b),'#'); while(n>0) do begin t:= n mod jz;//intger if t>=10 then t:=t+55 else t:=t+48; b[i]:= chr(t); n:=n div jz; inc(i); end; jzzh2:=b; end; begin readln(n); fg:=false; if (n<0) then begin n:=-n; fg:=true; end; a:=jzzh2(n,2); if fg then write('-'); for i:= 50 downto 1 do begin if a[i]<>'#' then begin len:=i; break; end; end; for i:= len downto 1 do write(a[i]); writeln('(2)'); a:=jzzh2(n,8); if fg then write('-'); for i:= 50 downto 1 do begin if a[i]<>'#' then begin len:=i; break; end; end; for i:= len downto 1 do write(a[i]); writeln('(8)'); a:=jzzh2(n,16); if fg then write('-'); for i:= 50 downto 1 do begin if a[i]<>'#' then begin len:=i; break; end; end; for i:= len downto 1 do write(a[i]); writeln('(16)'); end.
- 1
信息
- ID
- 487
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者