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 ...
随机推荐
- ExtJs中的Grid具体操作(笔记及心得)
一.基本操作步骤 var cm=new Ext.grid.ColumnModel([ //对列的定义,cm是它的简写,作为真个表格的列模式,需要首先创建的{header:'编号',dataIndex: ...
- C++ template学习二 类模板定义及实例化
一个类模板(也称为类属类或类生成类)允许用户为类定义一种模式,使得类中的某些数据成员.默写成员函数的参数.某些成员函数的返回值,能够取任意类型(包括系统预定义的和用户自定义的). 如果一个类中数据成员 ...
- trangle
#include<iostream> #include<algorithm> using namespace std; int main() { int a,b,c; whil ...
- 关于Python网络爬虫实战笔记③
Python网络爬虫实战笔记③如何下载韩寒博客文章 Python网络爬虫实战笔记③如何下载韩寒博客文章 target:下载全部的文章 1. 博客列表页面规则 也就是, http://blog.sina ...
- java.util.MissingResourceException解决策
.properties文件放到当前目录下会报错: 需要放到src文件夹下:
- 面试常用算法——Longest Palindromic Substring(最长回文子串)
第一种: public static void main(String[] args) { String s = "abcbaaaaabcdcba"; int n,m; Strin ...
- httpunit使用演示样例
import java.io.IOException; import java.net.MalformedURLException; import org.xml.sax.SAXException; ...
- tar.xz文件怎样解压
XZ压缩最新压缩率之王 xz这个压缩可能非常多都非常陌生,只是您可知道xz是绝大数linux默认就带的一个压缩工具. 之前xz使用一直非常少,所以差点儿没有什么提起. 我是在下载phpmyadmin的 ...
- windows下搭建apache+php+mysql
在windows下,apache和mysql都有自动化安装的程序,本篇则侧重从apache和php版本选择,php线程安全,apache和mysql安装启动服务,工作环境配置这几个方面来阐述windo ...
- 一套手写ajax加一般处理程序的增删查改
倾述下感受:8天16次驳回.这个惨不忍睹. 好了不说了,说多了都是泪. 直接上代码 : 这个里面的字段我是用动软生成的,感觉自己手写哪些字段太浪费时间了,说多了都是泪 ajax.model层的代码: ...