第一题 分数化小数(fracdec.pas/c/cpp)
【题目描述】
写一个程序,输入一个形如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)
【输入格式】
单独的一行包括被空格分开的N和D,1≤N,D≤100000。
【输出格式】
输出一行,小数的表示方法上面已经说得很明白了。
【样例输入】
45 56
【样例输出】
0.803(571428)
要注意判断循环节是被除数重复,而不是商重复。不过我这里用的商和余数来表示。
#include <cstdio>
long ans[1000010];
long r = 0;
long hash[20][100010];
int main()
{
freopen("fracdec.in","r",stdin);
freopen("fracdec.out","