杭电-1717-小数化分数2
来源:互联网 发布:免费好用的mac清理软件 编辑:程序博客网 时间:2024/05/16 14:59
小数化分数2
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4220 Accepted Submission(s): 1702
Problem Description
Ray 在数学课上听老师说,任何小数都能表示成分数的形式,他开始了化了起来,很快他就完成了,但他又想到一个问题,如何把一个循环小数化成分数呢?
请你写一个程序不但可以将普通小数化成最简分数,也可以把循环小数化成最简分数。
请你写一个程序不但可以将普通小数化成最简分数,也可以把循环小数化成最简分数。
Input
第一行是一个整数N,表示有多少组数据。
每组数据只有一个纯小数,也就是整数部分为0。小数的位数不超过9位,循环部分用()括起来。
每组数据只有一个纯小数,也就是整数部分为0。小数的位数不超过9位,循环部分用()括起来。
Output
对每一个对应的小数化成最简分数后输出,占一行。
Sample Input
30.(4)0.50.32(692307)
Sample Output
4/91/217/52
代码:
#include<iostream>#include<string>using namespace std;int gcd(int a, int b){while (a ^= b ^= a ^= b %= a);return b;}int main(){int t;cin >> t;while (t--){string s;cin >> s;int len = s.length();int a = 0, b = 0, c = 0, d = 1;bool isq = true;for (int i = 2; i < len; ++i){if (s[i] == ')'){break;}if (s[i] != '(' && isq){a *= 10;a += (s[i] - '0');d *= 10;}else if (s[i] == '('){b = a;isq = false;}else{b *= 10;b += (s[i] - '0');c *= 10;c += 9;}}if (isq){b = a;c = d;}else{b -= a;c *= d;}int g = gcd(b, c);cout << b / g << "/" << c / g << endl;}return 0;}
0 0
- 小数化分数2 杭电1717
- 杭电-1717-小数化分数2
- 杭电-1717-杭电-1717-小数化分数2
- 【杭电oj】1717 - 小数化分数2(小数化分数,GCD)
- 杭电hdu1717 - 小数化分数2
- 杭电ACM1717——小数化分数2
- 1717 小数化分数2
- 小数化分数2
- 小数化分数2
- 小数化分数2
- 小数化分数2
- 小数化分数2
- 小数化分数2
- 小数化分数2
- 小数化分数2
- 小数化分数2
- hdu 1717 小数化分数2
- hdu 1717 --小数化分数2
- ConcurrentModificationException
- 序列化和反序列化
- android应用开发常用知识总结
- 大型网站系统架构的演化
- C++第一次实验-2
- 杭电-1717-小数化分数2
- 怎样把iOS9 Spotlight加入到你的app
- 扩展方法
- Good Morning
- 安卓学习过程、怎样阅读 Android 系统源码
- jfinal学习1——tomcat下搭建最初环境
- 提示用户输入一个数,试用个字符模拟七段显示器效果
- oracle数据库对象
- Windows下Apache安装及配置