JZOJ1275.【USACO题库】2.4.5 Fractions to Decimals分数化小数

来源:互联网 发布:做外贸需要哪些软件 编辑:程序博客网 时间:2024/04/29 16:44

题目描述

写一个程序,输入一个形如N/D的分数(N是分子,D是分母),输出它的小数形式。

如果小数有循环节的话,把循环节放在一对圆括号中。例如,

1/3 = .33333333 写成0.(3)

41/333 = 0.123123123… 写成0.(123)

用xxx.0 成表示整数

典型的转化例子:

1/3 = 0.(3)

22/5 = 4.4

1/7 = 0.(142857)

2/2 = 1.0

3/8 = 0.375

45/56 = 0.803(571428)

PROGRAM NAME: fracdec

INPUT FORMAT

单独的一行包括被空格分开的 N和D, 1 <= N,D <= 100000。

SAMPLE INPUT (file fracdec.in)

45 56

OUTPUT FORMAT

小数的表示方法上面说的很明白了,如果输出的长度超过76个字符,每行输出76个。

SAMPLE OUTPUT (file fracdec.out)

0.803(571428)

输入

输出

样例输入

样例输出

数据范围限制

思路:

直接模拟,整数部分不用管,只搞小数部分
每次n*10 div d,若为0就直接退出输出(不循环)
否则就记录一下当前算到该位时的的n*10 mod d的数位
当再次出现n*10 mod d,加上括号,输出

上面那串东西可能难理解,我重写一个……

做除法的时候,如果算出以前出现过的余数
比如100/3,余1
进十:10/3,余1
注意,1已经出现过了,接下来再算就循环下去了
加上括号,输出

代码:

var        bz:array[0..1000000]of longint;        n,i,d,l,x:longint;        s:ansistring;procedure print;var        i:longint;begin        for i:=1 to length(s) do        begin                write(s[i]);                if i mod 76=0then                        writeln;        end;        halt; end;begin        readln(n,d);        str(n div d,s);        l:=length(s);        s:=s+'.';        n:=n mod d;        bz[n]:=1;        x:=1;        if n=0 then        begin                s:=s+'0';                print;        end;        while n<>0 do        begin                inc(x);                n:=n*10;                s:=s+(chr(n div d+48));                n:=n mod d;                if bz[n]>0 then                        break                else bz[n]:=x;        end;        if n>0 then        begin                insert('(',s,l+bz[n]+1);                s:=s+')';        end;        print;end.
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 雷蛇北海巨妖耳机有回音怎么办 手机直播声卡有杂音有回音怎么办 大班见到陌生人入园怎么办安全教案 两首歌合并到一起中间有停顿怎么办 想做主持人但不是播音专业怎么办 动脉造影术2天后穿刺点出血怎么办 战舰世界买了重复金币船怎么办 戒指戴在手上取不下来怎么办 工作中难以和同事上司相处怎么办 老是被上司和同事欺负我该怎么办 桌面太低座位太高写字不舒服怎么办 一个人如果欠下网贷无法偿还怎么办 c语言的编译和运行不见了怎么办 8k纸的国庆节手抄报怎么办 合同员工签字了老板一直未签怎么办 下体长毛了很多肉芽很痒怎么办 对方拟把假离婚协议弄假成真怎么办 领主之塔改版后旧材料怎么办 汽车遥控钥匙打不开车门怎么办 苹果手机访问限制密码忘了怎么办 苹果的访问限制密码忘了怎么办 手机下雨天进水声音出了问题怎么办 胸太小了该怎么办经常揉胸会变大吗 鼻冲洗器冲鼻子耳朵进水怎么办 手表进水了然后里面有水珠怎么办 玩游戏后头晕恶心想吐怎么办 吃完美林3小时后又发烧怎么办 颜值和身材都是负分怎么办 妈妈离婚又有一个孩子我该怎么办 孩子妈妈天天给孩子吃药我该怎么办 被像蚂蚁有翅膀的虫子咬了怎么办 1周半宝宝扭脚丫肿了怎么办 离婚后前夫带孩子走了找不到怎么办 宜昌全视之眼逃出卢浮宫怎么办 qq号被盗了密保手机也被改怎么办 乐视盒子控播平台认证怎么办 购买冲气娃娃被发现了怎么办 买了充气娃娃太美舍不得扔怎么办 一品官老爷账号密码忘了怎么办 苹果手机加声音显示出耳机怎么办 被删除的照片恢复后效果变差怎么办