hdu1717(小数化分数)
2016-11-02 16:56
169 查看
题意:
将小数化为分数(小数可为循环小数和不循环的普通小数)
分析:
0.(47)=47.(47)−0.(47)99=47990.32(564)=32564.(564)−32.(564)10000−100=32564−3299900
代码:
#include<cstdio> #include<cstring> using namespace std; long long x,y,n,d; char s[10000]; long long gcd(long long x,long long y) { if (y==0) return x; return gcd(y,x%y); } int main() { int T; scanf("%d",&T); while (T--) { scanf("%s",s+1); int len=strlen(s+1); int t=3;x=d=0;y=1; while (s[t]!='(' && t<=len) { x=x*10+s[t]-'0'; y*=10,t++; } t++;n=y; if (s[t]!=')' && t<=len) d=x,x=x*10+s[t]-'0',y*=9,t++,n*=10; while (s[t]!=')' && t<=len) { x=x*10+s[t]-'0'; y+=9*n;n*=10; t++; } x-=d; long long m=gcd(x,y); printf("%I64d/%I64d\n",x/m,y/m); } return 0; } /* 1 0.32(692307) */
相关文章推荐
- ACM学习历程—HDU1717 小数化分数2(gcd)
- HDU1717 小数化分数2
- HDU1717 小数化分数2
- hdu1717 小数化分数2
- HDU1717--小数化分数2
- HDU1717(小数化分数,思维数学题)
- hdu1717 小数化分数2
- HDU1717--小数化分数2
- HDU 1717 小数化分数2
- HDOJ1717 小数化分数2(模拟)
- 1717 小数化分数2
- HDOJ 1717 小数化分数2
- HDU 1717 小数化分数2
- HDU 1717 小数化分数
- hdu 1717 小数化分数2
- 【HDOJ】1717 小数化分数2
- HDU1717 (循环小数化分数)
- ACM刷题之HDU————小数化分数2
- hdu 1717 小数化分数2
- 小数化分数2