FZU 2193 So Hard (把小数换为分数)
来源:互联网 发布:织梦cms安装教程 编辑:程序博客网 时间:2024/04/27 15:52
题目链接:http://acm.fzu.edu.cn/problem.php?pid=2193
Problem Description
请将有限小数化为最简分数。
Input
一个整数n 表示需要转化的小数个数;接下来n行,每行有一个有限小数。(保证小数位数不超过9位)
Output
输出有n行,每行为小数对应的最简分数
Sample Input
20.50.4
Sample Output
1/22/5
Hint
注意精度问题,数据保证不会有类似1.0的小数。Source
福州大学第十二届程序设计竞赛代码如下:
#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>#include <cmath>.using namespace std;char str[47];int GCD(int a, int b){ if(b==0) return a; return GCD(b,a%b);}int getint(char* str,int sta,int pos){ int num = 0; for(int i = sta; i < pos; i++) num = num*10+str[i]-48; return num;}int main(){ int t; scanf("%d",&t); while(t--) { double sum = 0; cin>>str; int len = strlen(str); int k = 0; for(int i = 0; i < len; i++) { if(str[i] != '.') { k++; } else { break; } } int mol = getint(str,k+1,len); int den = pow(10.0,len-k-1); mol += getint(str,0,k)*den; int gcd = GCD(mol,den); mol /= gcd; den /= gcd; cout<<mol<<'/'<<den<<endl; } return 0;}/*9911.10.10.21.111.1111.21.30.123450.123*/
1 0
- FZU 2193 So Hard (把小数换为分数)
- FZU 2193 So Hard
- FZU-2193 So Hard
- FZU-Problem 2193 So Hard
- FZU 2193 So Hard (简单的思维题目)
- 分数转换为小数(循环)
- [C++]小数转化为分数(class)
- 小数转化为分数
- 分数转化为小数
- 分数转化为小数
- 小数转换为分数形式
- [水+数学] fzu oj 2193 So Hard and 2191 完美的数字
- 小数(包括循环小数)转化为分数方法,nyoj 1199
- foj 2193 So Hard
- Problem 2193 So Hard
- So Hard (水题)
- 把小数转化为百分比
- 分数化小数(decimal)
- QString 与 QByteArray的转换
- 03_Weblogic之配置简单域:启动和配置域,使用模板创建域,使用控制台
- 解决【应用程序已被安全设置阻止】弹出框的手动设置方法
- java基本类型和包装类
- BASH 中单括号和双括号
- FZU 2193 So Hard (把小数换为分数)
- 虚拟机之痛-- 记生产环境虚机存储故障
- 《重要》从用户模式切换到内核模式的完整过程分析
- ZOJ 2760 - How Many Shortest Path(网络流’最大流)
- 页面弹出框
- UVA - 585 Triangles
- 搜索引擎-倒排索引基础知识
- Struts2源码分析(二) 一一一 StrutsRequestWrapper
- VMware--Linux--Xshell安装