实验七 12 小数化分数
题目
【问题描述】
任何小数都能表示成分数的形式,对于給定的小数,编写程序其化为最简分数输出,小数包括简单小数和循环小数。
【输入形式】
第一行是一个整数N,表示有多少组数据。每组数据只有一个纯小数,也就是整数部分为0。小数的位数不超过9位,循环部分用()括起来。
【输出形式】
对每一个对应的小数化成最简分数后输出,占一行
【样例输入】
3
0.(4)
0.5
0.32(692307)
【样例输出】
4/9
1/2
17/52
http://www.360doc.com/content/18/1210/10/32901809_800612817.shtml
代码
#include<iostream>
#include<string>
using namespace std;
int gcd(int a, int b)
{if (a<b) {int temp=a;a=b;;b=temp;}return b == 0 ? a : gcd(b, a % b);
}
int main()
{int n;cin>>n;for(int pass=0;pass<n;pass++){string s;cin>>s;s=s.substr(2);int x=s.find("(");int y=s.find(")");int l=s.length(),lx=y-x-1;int fz=0,fm=0;if(x==-1){for(int i=l-1,N=1;i>=0;i--,N*=10)fz+=(s[i]-'0')*N;fm=1;for(int i=1;i<=l;i++)fm*=10;int g=gcd(fz,fm);fz=fz/g;fm=fm/g;cout<<fz<<"/"<<fm<<endl;} else if(x==0){for(int i=lx,N=1;i>0;i--,N*=10)fz+=(s[i]-'0')*N;for(int i=1,N=1;i<=l-2;i++,N*=10)fm+=9*N;int g=gcd(fz,fm);fz=fz/g;fm=fm/g;cout<<fz<<"/"<<fm<<endl;}else{for(int i=y-1,N=1;i>=0;i--,N*=10){if(i==x){N/=10;continue;}fz+=(s[i]-'0')*N;} for(int i=x-1,N=1;i>=0;i--,N*=10)fz-=(s[i]-'0')*N;for(int i=1,N=1;i<=lx;i++,N*=10)fm+=9*N;for(int i=1;i<=x;i++)fm*=10;int g=gcd(fz,fm);fz/=g;fm/=g;cout<<fz<<"/"<<fm<<endl;}}
}
实验七 12 小数化分数相关推荐
- 分数化成有限小数的方法_分数化小数的方法|小数化分数题目
[www.520z-2.com - 话题作文] 小数由整数部分.小数部分和小数点组成.当测量物体时往往会得到的不是整数的数,古人就发明了小数来补充整数 小数是十进制分数的一种特殊表现形式.下面是小学生 ...
- 小数点化分数的过程_小数化分数
分数和小数的互化 _五__年级__数学____备课组教案 教师 课题 备课时间 分数和小数的互化 课时 课型 新授 课前准备:教材剖析(考点.易错点.关联考点) . 1. 理解并掌握分数和小数互化方法 ...
- HDOJ 1717 小数化分数2 (数学,循环小数化分数详细讲解)
小数化分数2 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 紫书 习题8-14 UVa 1616(二分+小数化分数+精度)
参考了https://www.cnblogs.com/dwtfukgv/p/5645446.html (1)直接二分答案.说实话我没有想到, 一开始以为是贪心, 以某种策略能得到最优解. 但是想了很久 ...
- 小数化分数 (思维)
Q - 小数化分数2 Description Ray 在数学课上听老师说,任何小数都能表示成分数的形式,他开始了化了起来,很快他就完成了,但他又想到一个问题,如何把一个循环小数化成分数呢? 请你写一 ...
- 小数化分数 思路及代码模板 c++实现
小数化分数 将一个小数化成一个最简分数的模板,小数包含简单小数和循环小数. 对于循环小数的输入我们将循环体用括号括起来表示. 思路 首先我们将小数部分的数化为分数:对于整数部分我们只需要将化好的分子加 ...
- 小数化分数c++(附做法数学证明)
小数化分数 时间限制(普通/Java):1000MS/10000MS 内存限制:65536KByte 描述 在数学课上听老师说,任何小数都能表示成分数的形式,他开始了化了起来,很快他就完成了,但他又想 ...
- HNU程序设计-小数化分数
一.问题描述 二.问题分析及思路 小数化分数: 1.对于不循环小数,小数点后有i位,则分子为这i位数,分母为10的i次方,约分得到最简分数(除最大公约数) 2.对于只有循环的小数,分子为循环的部分(i ...
- 小数化分数的口诀表_五年级数学下册分数与小数的互化,常用的小数化成分数表,要熟记...
分数与小数是两类不同的数字,它们之间可以互相转化.分数与小数,这两类数字又有各自不同的特点,在具体的使用环境中,虽然说这两个数字可以互相通用,但是它们的特性不同,所使用的范围是不一样的,有些情况下使用 ...
最新文章
- deepnode处理过的图片_这款实用的图片软件,其功能相当于十几款图片处理软件的功能之和...
- 接收对象数组_示例: Bit数组
- MySQL5.7号称永久解决了复制延迟问题的并行复制
- c语言输入坐标判断位置,〓求助〓谁能帮忙编个程序:输入N个点坐标,判断能否构成多边形....
- C++ 的几个for 循环,范围for语句
- phpnow mysql密码_使用PHPnow搭建本地PHP环境+创建MySQL数据库
- tensorflow之truncated_normal
- Flutter之实战InheritedWidget详解
- Graphpad prism8
- PC发卡机器人 v1.0
- Nat Commun:中国中医科学院黄璐琦院士/首都医科大学高伟教授团队联合解析雷公藤甲素生物合成关键C-14位羟化机制...
- OpenHarmony啃论文俱乐部方法总结分析
- java新特性-函数式接口-作为方法参数-作为方法的返回值-常用函数式接口-Supplier-Consumer-Predicate-Function
- 如何驯服野生论文 | EndNote
- vscode中搭建Golang开发环境(图文并茂)
- VISSIM4.30安装
- RevMan 5.3.5 Mac/Linux/Win 强大的Meta分析工具
- 机器学习的数学基础:向量篇
- 字符串的压缩(c语言描述)
- 剑指offer|40题题解汇总成pdf了