循环小数 II
Time Limit: 1000 MS Memory Limit: 65536 K
Total Submit: 155(55 users) Total Accepted: 92(51 users) Rating: Special Judge: No
Description

对于一个小数,我们记作0.abcd(efgh),若其中含有括号,则其中用括号包围的是循环数。若不含有括号,则表示的是有限小数。

现在需要你求出给出的小数对应的最简分数表示形式。

Input

输入数据每行一个小数,最长非循环位为4位,最长循环数为4位,按照题目描述的方法表示

处理到文件结束

Output

输出给出的小数对应的最简分数表示形式

Sample Input
0.1
0.(1)
0.8(3)
Sample Output
1/10
1/9
5/6
Author
齐达拉图

其实不难,只需要记住一个转换公式即可,eg:

0.8(142),求该循环小数的分数形式;可以先设置该循环小数的结果为x

则-》8142.(142)==10000x

8.(142)==10x

用第一个方程减去第二个方程便可以求得x

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<algorithm>
using namespace std;
char str[];
int gcd(int a,int b){
if(b==)
return a;
else
gcd(b,a%b);
} int main(){
while(scanf("%s",str)!=EOF){
int sum1=,sum2=;
// getchar();
int len=strlen(str);
// printf("-->%d\n",len);
int flag=-;
for(int i=;i<len;i++){
if(str[i]=='(')
flag=i; }
if(flag==-){ int xx=pow(,len-);
int yy=;
for(int i=;i<len;i++){
int x=str[i]-''+;
yy=yy*+x;
}
int yue=gcd(yy,xx);
if(yue==)
printf("%d/%d\n",yy,xx);
else
printf("%d/%d\n",yy/yue,xx/yue); }
else{
int len1=flag-;
int len2=len-flag-;
int l1=,l2=;
double r1,r2;
r1=pow((double),len1+len2);
r2=pow((double),len1);
// printf("--->%d %d %lf %lf\n",len1,len2,r1,r2);
for(int i=;i<len;i++){
if(str[i]>=''&&str[i]<='')
l1=l1*+str[i]-''+;
}
for(int i=;i<flag;i++){
l2=l2*+str[i]-''+;
}
int x2=l1-l2;
int y2=(int)r1-(int)r2;
int yue=gcd(x2,y2);
if(yue==)
printf("%d/%d\n",x2,y2);
else
printf("%d/%d\n",x2/yue,y2/yue); } memset(str,,sizeof(str));
}
return ;
}

HLG1125 循环小数2的更多相关文章

  1. [LeetCode] Fraction to Recurring Decimal 分数转循环小数

    Given two integers representing the numerator and denominator of a fraction, return the fraction in ...

  2. uva202:循环小数(循环节+抽屉原理)

    题意: 给出两个数n,m,0<=n,m<=3000,输出n/m的循环小数表示以及循环节长度. 思路: 设立一个r[]数组记录循环小数,u[]记录每次的count,用于标记,小数计算可用 r ...

  3. nyoj 329 循环小数【KMP】【求最小循环节长度+循环次数+循环体】

    循环小数 时间限制:3000 ms  |  内存限制:65535 KB 难度:1   描述 我们可爱的 c小加 近段儿正在潜心研究数学,当他学习到循环小数这一部分时不是太明白循环体是什么意思(比如说3 ...

  4. 循环小数 UVa202

    输入整数a和b(0<=a<=3000,1<=b<=3000),输出a/b的循环小数表示以及循环节长度. 例如,a=5,b=43,小数表示为0.(1162790697674418 ...

  5. ACM—循环小数转变成分数知识点_C++实现

    在小学的时候,我们的学生都能把“整数表示成分母是1的分数”,而且大多数学生也都能把有限小数和循环小数表示成分数的形式.这样,整数.分数.有限小数.循环小数都属于有理数.教科书中说“整数和分数统称有理数 ...

  6. 无限循环小数POJ1930

    题意:给定一个无限循环小数,求其分数形势,要求分母最小 分析:看了别人的题解才做出来的,将无限循环小数转化成分数,分为纯循环和混循环两种形式. (1)对于纯循环:用9做分母,有多少个循环数就几个9,比 ...

  7. POJ 1930 Dead Fraction (循环小数-GCD)

    题意:给你一个循环小数,化成分数,要求分数的分母最小. 思路:暴力搜一遍循环节 把循环小数化分数步骤: 纯循环小数化分数 纯循环小数的小数部分可以化成分数,这个分数的分子是一个循环节表示的数,分母各位 ...

  8. poj 1930 Dead Fraction(循环小数化分数)

    Dead Fraction Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 3478   Accepted: 1162 Des ...

  9. UVA 10555 - Dead Fraction(数论+无限循环小数)

    UVA 10555 - Dead Fraction 题目链接 题意:给定一个循环小数,不确定循环节,求出该小数用分数表示,而且分母最小的情况 思路:推个小公式 一个小数0.aaaaabbb... 表示 ...

随机推荐

  1. java Vamei快速教程04 封装和接口

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 总结之前的内容,对象(object)指代某一事物,类(class)指代象的类型.对 ...

  2. 最简单的基于FFMPEG的转码程序 —— 分析

    模块:  libavcodec    - 编码解码器         libavdevice   - 输入输出设备的支持         libavfilter   - 视音频滤镜支持         ...

  3. linux 命令——20 find(转)

    find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec  参数后面跟的是command ...

  4. Hybris UI的Route(路由)实现

    登录Hybris前台,在product catalog里选择Digital camera: 点击某个产品进入明细页面: 注意产品明细这个url: 这个明细页面的路由和SAP UI5的路由思路很像. 在 ...

  5. co-dialog弹出框组件-版本v2.0.0

    co-dialog theme 访问git:co-dialog 版本v2.0.0 主题2 coog.app('.theme2').use({ title: 'JUST CHECKING.', mess ...

  6. Redis常用特性

    发布订阅 ·服务器状态在pubsub_channels字典保存了所有频道的订阅关系:SUBSCRIBE命令负责将客户端和被订阅的频道关联到这个字典里面,而UNSUBSCRIBE命令则负责解除客户端和被 ...

  7. Miller-Rabbin 素性测试 和 Pollard_rho整数分解

    今天学习一下Miller-Rabbin  素性测试 和 Pollard_rho整数分解. 两者都是概率算法. Miller_Rabbin素性测试是对简单伪素数pseudoprime测试的改进. (ps ...

  8. Handling Exceptions

    https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Exceptions/Tasks/Handling ...

  9. 巧妙使用JQuery Clone 添加多行数据,并更新到数据库

    WEB代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="BatchAdd. ...

  10. Mybatis 插入一条或批量插入 返回带有自增长主键记录

    首先讲一下,  插入一条记录返回主键的 Mybatis 版本要求低点,而批量插入返回带主键的 需要升级到3.3.1版本,3.3.0之前的都不行, <dependency> <grou ...