P1017 进制转换
2017-02-03 17:00
211 查看
题目描述
给出一个十进制数N,转化为负进制-R,若基数超过10,则按十六进制的方式处理。样例输入
30000 -2
样例输出
30000=11011010101110000(base-2)
思路
O(log n) 倒除法,注意的是负整数取模后是正整数取模的相反数,所以要减去它的除数。
var n,i,x,y:longint; s:string; begin readln(n,x); write(n,'='); if n=0 then begin writeln(0,'(base',x,')');exit;end else if n=1 then begin writeln(1,'(base',x,')');exit;end else repeat y:=n mod x; n:=n div x; if y<0 then begin inc(n); y:=y-x; end; y:=y+48; if y>=58 then y:=y+7; s:=chr(y)+s; until n=0; writeln(s,'(base',x,')'); end.
相关文章推荐
- P1017 进制转换
- P1017 进制转换
- 洛谷P1017 进制转换
- 洛谷P1017 进制转换
- 洛谷 P1017 进制转换
- 洛谷 P1017 进制转换
- 【p1017-进制转换】解题记录
- 负进制数之P1017 进制转换
- P1017 进制转换
- 洛谷P1017-进制转换
- 洛谷 P1017 [NOIP2000 T1] 进制转换
- [NOIP2000] 提高组 洛谷P1017 进制转换
- 洛谷 P1017 进制转换
- 洛谷—— P1017 进制转换
- 洛谷 P1017 进制转换
- C++实现进制转换(十进制转十六进制)
- 心算 进制转换 心得 =》 任意进制的数 转 任意进制的数
- 进制转换
- PHP进制转换
- 九度[1080]进制转换