循环小数

该博客介绍如何将无限循环小数转化为最简分数,例如将0.333...转换为1/3,0.1919...转换为19/99。内容涉及数学和算法问题,要求在限定时间和内存限制内完成。
摘要由CSDN通过智能技术生成

题目描述
循环小数就是如同1/3的小数形式0.3333…… ,小数点后的3是无限的,19/99的小数形式为0.1919……,有无限个19循环。
现在你接到一个任务,就是由无限循环小数,还原回最简分数的形式,且0.3333……我们只用循环子串3表示,0.1919……用循环子串19表示。

解答要求
时间限制:1000ms, 内存限制:64MB
输入
输入一个小数的循环子串s,s的长度不超过10。输入为0时结束输入。

输出
输出循环小数的最简分数形式。

样例
输入样例 1 复制

3
19
0
输出样例 1

1/3
19/99

//we have defined the necessary header files here for this problem.
//If additional header files are needed in your program, please import here.
//a=0.xxb,那么10a=x.xxb;相减即可9a=xb;x=9a/b;    0.333...*10=3.333...  a=0.333...    10a-a=3  a=3/9=1/3 
//a=0.xyxyb,那么100a=xy.xyb;相减即可,99a=xy,xy=99a/b;
//依次类推;
//需要注意的是,样例中有01这样的东西,所以读入分子时候不能读入整数类型,应该按照字符串读入;
//注意最后约分
//求最大公约数,辗转相除法
int gcd(int a,int b)
{
    int temp;
    while(b)
    {
        temp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值