题目

【问题描述】

   任何小数都能表示成分数的形式,对于給定的小数,编写程序其化为最简分数输出,小数包括简单小数和循环小数。

【输入形式】

   第一行是一个整数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 小数化分数相关推荐

  1. 分数化成有限小数的方法_分数化小数的方法|小数化分数题目

    [www.520z-2.com - 话题作文] 小数由整数部分.小数部分和小数点组成.当测量物体时往往会得到的不是整数的数,古人就发明了小数来补充整数 小数是十进制分数的一种特殊表现形式.下面是小学生 ...

  2. 小数点化分数的过程_小数化分数

    分数和小数的互化 _五__年级__数学____备课组教案 教师 课题 备课时间 分数和小数的互化 课时 课型 新授 课前准备:教材剖析(考点.易错点.关联考点) . 1. 理解并掌握分数和小数互化方法 ...

  3. HDOJ 1717 小数化分数2 (数学,循环小数化分数详细讲解)

     小数化分数2 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  4. 紫书 习题8-14 UVa 1616(二分+小数化分数+精度)

    参考了https://www.cnblogs.com/dwtfukgv/p/5645446.html (1)直接二分答案.说实话我没有想到, 一开始以为是贪心, 以某种策略能得到最优解. 但是想了很久 ...

  5. 小数化分数 (思维)

    Q - 小数化分数2 Description Ray 在数学课上听老师说,任何小数都能表示成分数的形式,他开始了化了起来,很快他就完成了,但他又想到一个问题,如何把一个循环小数化成分数呢?  请你写一 ...

  6. 小数化分数 思路及代码模板 c++实现

    小数化分数 将一个小数化成一个最简分数的模板,小数包含简单小数和循环小数. 对于循环小数的输入我们将循环体用括号括起来表示. 思路 首先我们将小数部分的数化为分数:对于整数部分我们只需要将化好的分子加 ...

  7. 小数化分数c++(附做法数学证明)

    小数化分数 时间限制(普通/Java):1000MS/10000MS 内存限制:65536KByte 描述 在数学课上听老师说,任何小数都能表示成分数的形式,他开始了化了起来,很快他就完成了,但他又想 ...

  8. HNU程序设计-小数化分数

    一.问题描述 二.问题分析及思路 小数化分数: 1.对于不循环小数,小数点后有i位,则分子为这i位数,分母为10的i次方,约分得到最简分数(除最大公约数) 2.对于只有循环的小数,分子为循环的部分(i ...

  9. 小数化分数的口诀表_五年级数学下册分数与小数的互化,常用的小数化成分数表,要熟记...

    分数与小数是两类不同的数字,它们之间可以互相转化.分数与小数,这两类数字又有各自不同的特点,在具体的使用环境中,虽然说这两个数字可以互相通用,但是它们的特性不同,所使用的范围是不一样的,有些情况下使用 ...

最新文章

  1. deepnode处理过的图片_这款实用的图片软件,其功能相当于十几款图片处理软件的功能之和...
  2. 接收对象数组_示例: Bit数组
  3. MySQL5.7号称永久解决了复制延迟问题的并行复制
  4. c语言输入坐标判断位置,〓求助〓谁能帮忙编个程序:输入N个点坐标,判断能否构成多边形....
  5. C++ 的几个for 循环,范围for语句
  6. phpnow mysql密码_使用PHPnow搭建本地PHP环境+创建MySQL数据库
  7. tensorflow之truncated_normal
  8. Flutter之实战InheritedWidget详解
  9. Graphpad prism8
  10. PC发卡机器人 v1.0
  11. Nat Commun:中国中医科学院黄璐琦院士/首都医科大学高伟教授团队联合解析雷公藤甲素生物合成关键C-14位羟化机制...
  12. OpenHarmony啃论文俱乐部方法总结分析
  13. java新特性-函数式接口-作为方法参数-作为方法的返回值-常用函数式接口-Supplier-Consumer-Predicate-Function
  14. 如何驯服野生论文 | EndNote
  15. vscode中搭建Golang开发环境(图文并茂)
  16. VISSIM4.30安装
  17. RevMan 5.3.5 Mac/Linux/Win 强大的Meta分析工具
  18. 机器学习的数学基础:向量篇
  19. 字符串的压缩(c语言描述)
  20. 剑指offer|40题题解汇总成pdf了

热门文章

  1. AppInventor之数据库、MQTT及导出Excel表格
  2. 时间序列差分后去除空值
  3. 水星路由器短信认证配置流程
  4. Python记:列表和元组之序列相加
  5. Linux基础命令(补充:命令行提示字符加颜色)
  6. Java 正则验证邮箱
  7. 微生物恒化器中的进化压力----进化模型推导与分析
  8. python小数乘法计算_小数乘法100道
  9. %d,%c,%s,%x各代表什么
  10. css 字体图标更改颜色_在CSS中更改字体