noip2000-fjz-进制转换 2008.11.5
2016-02-05 13:12
281 查看
noip2000-fjz-进制转换 2008.11.5
算法:
1.负进制,短除法,但是余数小于0时要从上一位借位(商+1,余数-进制数)
2.遇到此类题目,肯定是对原来的进制转换有所改进的,所以,对规则若不确定可以多写几个连蒙带猜的,必定可以通过!
3.Wa,题中说的是r:-2,-3,….-20,不能想当然的认为是到-16—一定要看清题中的每一个字!
算法:
1.负进制,短除法,但是余数小于0时要从上一位借位(商+1,余数-进制数)
2.遇到此类题目,肯定是对原来的进制转换有所改进的,所以,对规则若不确定可以多写几个连蒙带猜的,必定可以通过!
3.Wa,题中说的是r:-2,-3,….-20,不能想当然的认为是到-16—一定要看清题中的每一个字!
program fjz; const fin='fjz.in';fout='fjz.out'; p:array[0..19]of char=('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J'); var x,r,y:longint; f1,f2:text; a:array[1..10000]of char; procedure deal(x,r:longint); var la,i,x1:longint; begin la:=0; x1:=x; repeat y:=x mod r; if y<0 then begin y:=y-r;x:=x div r+1 end else x:=x div r; inc(la);a[la]:=p[y]; until x=0; write(f2,x1,'='); for i:=la downto 1 do write(f2,a[i]); writeln(f2,'(base',r,')'); end; begin assign(f1,fin);reset(f1); assign(f2,fout);rewrite(f2); repeat readln(f1,x,r); if r<>0 then deal(x,r); until eof(f1); close(f1); close(f2); end.
相关文章推荐
- 我的开发环境
- 在VS2010下添加已存在的CPP和.h文件
- noip2000-计算器的改良 2008.11.5
- 标题就叫2015年上班的最后一天啦
- 扩展windows2003 系统分区
- noip2000-单词接龙2008.11.5
- BZOJ1099 POI2007 树Drz
- 狼、狗、王八都挣发了,而羊穷得连崽也不敢生
- Floodlight之 FloodlightContextStore 数据结构
- 【项目管理】推荐一个轻量级的软件项目管理工具
- 判断java对象是否还“活着”
- HDU 4635 Strongly connected(强连通分量)
- 基于Spark-Streaming滑动窗口实现——实时排名与统计
- noip2007矩阵取数游戏 2008.11.5
- 第三章 JVM内存回收区域+对象存活的判断+引用类型+垃圾回收线程
- iOS开发——UILabel自适应较多的文本
- 【树】【独立集】【动态规划】[BZOJ1040][ZJOI2008]骑士
- 单机游戏魔塔学院的安卓版本打包经验小结(二)
- HDU 5274(树链剖分)
- CSS3:backgroud-size和background-origin的使用方法