ACM—循环小数转变成分数知识点_C++实现
在小学的时候,我们的学生都能把“整数表示成分母是1的分数”,而且大多数学生也都能把有限小数和循环小数表示成分数的形式.这样,整数、分数、有限小数、循环小数都属于有理数.教科书中说“整数和分数统称有理数”,其中当然包括有限小数和无限循环小数.
例 把3, 0.2, ,,,表示成分数.
思路分析:3=, 0.2=,=, =,=,==.
特别提醒:把循环小数化成分数是有规律可循的.下面我们用方程的思想,借助具体的例子来总结这个规律:
设 =x……………①,现将左右两端同时乘以1000得
231. =1000 x………②
于是,由②-①,得
231=1000 x- x
即 999x=231
故 x =,
约分,得 x=.
可见转化成分数是.于是在此基础上给出纯循环小数化为分数的一般方法就不困难了.请老师引导学生,尽量让学生自已从中归纳得出相应的一般方法来.
设,则有
10y=2.……………①
1000y=231. ………②
由②-①得
1000y-10 y =231-2
即 y=.
可见转化成分数是,在此基础上给出混循环小数化为分数的一般方法是不困难的.请老师们引导学生自己去归纳.
#include <iostream>
#include <cctype>
#include <cmath>
using namespace std;
int gcd(int a,int b)
{
int c;
if(a<b)
{
c=a;
a=b;
b=c;
}
while(b)
{
c=a%b;
a=b;
b=c;
}
return a;
}
int main()
{
int count_=;
int i=,first=,end_=;
string temp;
int a,b;
cin>>count_;
while(count_--)
{
a=;b=;i=;
cin>>temp;
while(temp[i++]!='.');
while(isdigit(temp[i]))
a=a*+temp[i++]-'';
first=i-;
if(temp[i]!='\0')
{
i++;
while(isdigit(temp[i]))
b=b*+temp[i++]-''; end_=i-first-; a=b+a*pow(,end_)-a;
b=pow(,end_+first)-pow(,first); }
else
{
b=pow(,first);
}
i=gcd(b,a);
cout<<a/i<<"/"<<b/i<<endl;
}
return ;
}
ACM—循环小数转变成分数知识点_C++实现的更多相关文章
- Decimal To Fraction 小数转换成分数
以0.25为例, 0.25 * 100 = 25, 求25 和 100 的最大公约数gcd. 25/gcd 为分子. 100/gcd为分母. //小数转分数 //0.3 -> 3/10, 0.2 ...
- 无限循环小数POJ1930
题意:给定一个无限循环小数,求其分数形势,要求分母最小 分析:看了别人的题解才做出来的,将无限循环小数转化成分数,分为纯循环和混循环两种形式. (1)对于纯循环:用9做分母,有多少个循环数就几个9,比 ...
- MATLAB常用操作
1.点乘,点除,点乘方 点乘(对应元素相乘),必须同维或者其中一个是标量,a.*b 点除,a.\b表示矩阵b的每个元素除以a中对应元素或者除以常数a,a./b表示常数a除以矩阵b中每个元素或者矩阵a除 ...
- 编程之美 set 2 精确表达浮点数
有限小数和无限循环小数转化成分数 比如 0.9 -> 9/10 0.333(3) -> 1/3 解法 1. 主要涉及到一个数学公式的计算. 2. 对于有限小数, 分子分母求最大公约数即可 ...
- [LeetCode] Fraction to Recurring Decimal 分数转循环小数
Given two integers representing the numerator and denominator of a fraction, return the fraction in ...
- ACM学习历程—HDU1717 小数化分数2(gcd)
Description Ray 在数学课上听老师说,任何小数都能表示成分数的形式,他开始了化了起来,很快他就完成了,但他又想到一个问题,如何把一个循环小数化成分数呢? 请你写一个程序不但可以将普通小数 ...
- CSU 8月月赛 Decimal 小数化分数
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1303 这个OJ很容易跪所以我贴一下题目 Description 任意一个分数都是有理数,对于任意一 ...
- ACM Steps 2.1.8
小数化分数2 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- HDU1717小数化分数2
小数化分数2 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
随机推荐
- WPF属性与特性的映射(TypeConverter)
1,定义一个类 public class Human { public string Name { get; set; } public Human Child { get; set; } } 2在X ...
- 用C++写一个简单的发布者
节点是一个可执行程序,它连接到了ROS的网络系统中.我们将会创建一个发布者,也就是说话者节点,它将会持续的广播一个信息. 改变目录到之前所建立的那个包下: cd ~/catkin_ws/src/beg ...
- Java 内省机制
一.内省 内省(Introspector) 是Java 语言对 JavaBean 类属性.事件的一种缺省处理方法.JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的 ...
- Android Gradle配置
解决问题 错误: Could not find the AndroidManifest.xml file, going up from path //打开app build.gradle文件加入以下代 ...
- 应该知道的Linux技巧
作者:陈皓(花名:钻风) 这篇文章来源于Quroa的一个问答<What are some time-saving tips that every Linux user should know?& ...
- Windows系统下远程Linux系统
Windows系统下远程Linux系统 工具:Xmanager 启动界面: 配置保存路径(win7): C:\Users\Administrator\AppData\Roaming\NetSarang ...
- pyhton
http://panda.www.net.cn/cgi-bin/check.cgi?area_domain= http://whois.chinaz.com/ beautifulsoup4 impor ...
- HDU 5782 Cycle(KMP+Hash)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5782 [题目大意] 给出两个字符串,判断他们每一个前缀是否循环同构,循环同构的意思就是,字符串首位 ...
- 【Perl学习笔记】1.perl的ref 函数
perl有引用的概念:一组数据实际上是另一组数据的引用.这些引用称为指针,第一组数据中存放的是第二组数据的头地址.引用的方式被用得相当普遍,特别是在面向对象的模块.函数的参数传递等常见.但perl对每 ...
- 在美国,一名 Uber 司机能赚多少?
在美国,Uber 司机是最热门的职业.有了 uberX,任何有车一族都能成为司机.Uber 让我们很容易成为司机. 虽然 Uber 做不到赚得盆满钵满,但对于水深火热的司机这一行来说,多了许多盈利机会 ...