hdu 1717 小数化分数2(数学)

2018年03月07日 14点热度 0人点赞 0条评论

小数化分数2

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 5742    Accepted Submission(s): 2351


Problem Description
Ray 在数学课上听老师说,任何小数都能表示成分数的形式,他开始了化了起来,很快他就完成了,但他又想到一个问题,如何把一个循环小数化成分数呢?
请你写一个程序不但可以将普通小数化成最简分数,也可以把循环小数化成最简分数。
 


Input
第一行是一个整数N,表示有多少组数据。
每组数据只有一个纯小数,也就是整数部分为0。小数的位数不超过9位,循环部分用()括起来。
 


Output
对每一个对应的小数化成最简分数后输出,占一行。
 


Sample Input

3
0.(4)
0.5
0.32(692307)
 


Sample Output

4/9
1/2
17/52
//证明用极限证明 
#include
#include
#include
#define ll long long
using namespace std;
ll gcd(ll a,ll b) {
	return a?gcd(b%a,a):b;
}
void solve(ll a,ll b,ll c,ll d) {
	//求和
	a=a*d+b*c;
	b=b*d;
	ll t=2;
	ll g=gcd(a,b);
	printf("%lld/%lldn",a/g,b/g);
}
int main() {
	char s[20];
	int T;
	scanf("%d",&T);
	while(T--) {
		scanf("%s",s);
		int len=strlen(s);
		ll a=0,b=1,c=0,d=0;//小数和循环小数分别用分数表示
		int i;
		for(i=2; i

未经允许不得转载!hdu 1717 小数化分数2(数学)

update

纸上得来终觉浅, 绝知此事须躬行。