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
- JZOJ1275.【USACO题库】2.4.5 Fractions to Decimals分数化小数
- 【USACO题库】2.4.5 Fractions to Decimals分数化小数
- usaco ★Fractions to Decimals 分数化小数
- YTU 1439: 2.4.5 Fractions to Decimals 分数化小数
- Problem H: 2.4.5 Fractions to Decimals 分数化小数
- YTU 1439: 2.4.5 Fractions to Decimals 分数化小数
- Problem H: 2.4.5 Fractions to Decimals 分数化小数
- 1439: 2.4.5 Fractions to Decimals 分数化小数
- 问题 H: 2.4.5 Fractions to Decimals 分数化小数
- 问题 H: 2.4.5 Fractions to Decimals 分数化小数
- Problem H: 2.4.5 Fractions to Decimals 分数化小数
- 1439: 2.4.5 Fractions to Decimals 分数化小数
- [USACO2.4]分数化小数 Fractions to Decimals
- USACO section 2.4 Fractions to Decimals(小数处理)
- USACO 2.4.5 Fractions to Decimals
- USACO 2.4.5 Fractions to Decimals
- USACO--2.4Fractions to Decimals
- USACO 2.4 Fractions to Decimals
- 面向对象高级( 随手记-4)
- 从np.random.normal()到正态分布的拟合
- 矩阵计算一些重要的结论及其证明
- Zoj 3956 Course Selection System【01背包】
- Telephone--短信发送/接收流程
- JZOJ1275.【USACO题库】2.4.5 Fractions to Decimals分数化小数
- c++第四次作业报告 项目2.3.4
- API的学习:TCP&&UDP
- Asp.Net控件GridView1绑定数据
- 移动便携编译器gcc+npp过程。
- 位置无关码的理解和使用
- ConcurrentMap、hashTable与hashMap的区别
- Valid Anagram
- [C++]关于多态的一道题目