博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1303: Decimal
阅读量:5846 次
发布时间:2019-06-18

本文共 1232 字,大约阅读时间需要 4 分钟。

1303: Decimal

Time Limit: 1 Sec  
Memory Limit: 128 MB
[ ][ ][ ]

Description

任意一个分数都是有理数,对于任意一个有限小数,我们都可以表示成一个无限循环小数的形式(在其末尾添加0),对于任意一个无限循环小数都可以转化成一个分数。现在你的任务就是将任意一个无限循环小数转化成既约分数形式。所谓既约分数表示,分子和分母的最大公约数是1。

 

Input

有多组数据。

每组数据一行。输入为0.a1a2a3...ak(b1b2...bm)的形式,其中a1a2a3...ak为非循环部分,(b1b2b3..bm)为循环部分。数据保证非循环部分的长度k和循环部分的长度m不会超过8.

 

Output

对于每组测试数据输出A/B,其中A是分子,B是分母,A,B均为整数。

 

Sample Input

0.0(714285)
0.0(5)
0.9(671)

Sample Output

1/14
1/18
4831/4995
  让我想起我在北京教奥数的日子了。
 p = 0.a1a2a3...ak(b1b2...bm)
A = p*10^k = a1a2a3...ak.(b1b2...bm)
B = p*10^(k+m) = a1a2a3...akb1b2...bm.(b1b2...bm)
B-A = p(10^(k+m)-10^(k))为整数 
p =  (B-A)/(10^(k+m)-10^(k));
#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define Max(a,b) ((a)>(b)?(a):(b))using namespace std ;typedef long long LL ;LL gcd(LL x ,LL y){ return y==0?x:gcd(y,x%y) ;}LL my_pow(LL x ,int y){ LL sum=1 ; for(;y;y>>=1){ if(y&1) sum*=x ; x*=x ; } return sum ;}int main(){ int x ,y ,L_a ,L_b; string str ,A ,B; LL fenzi ,fenmu; LL ab ,a ; while(cin>>str){ for(int i=0;i

 

转载于:https://www.cnblogs.com/liyangtianmen/p/3352828.html

你可能感兴趣的文章
mvc表单Form提交 --实体
查看>>
jquery easyui 输入框 禁止输入负数 设置属性data-options="min:0,required:true"
查看>>
ajax提交数据
查看>>
mysql 相关
查看>>
javascript 内存和连等赋值
查看>>
Angular动态注册组件(controller,service...)
查看>>
LuaStudio编辑调试软件
查看>>
iOS动画之模拟音量振动条
查看>>
Windows下64位Apache服务器的安装
查看>>
微信公众平台开发,图文回复、access_token生成调用、以及微信SDK的实现(2)
查看>>
Flex 与 Asp.Net 通过 Remoting 方式进行通讯 (三)
查看>>
Windows7中被大家忽略的实用七大功能
查看>>
18年ACM赛后总结
查看>>
一些认识或对不清楚知识的猜想
查看>>
MySQL取每组的前N条记录
查看>>
功能奇数次执行和偶数次执行时的结果不同的故障复盘
查看>>
问题:Excel在“xxx.xlsx”中发现不可读取的内容。是否恢复此工作薄的内容?【原创】...
查看>>
Android基础知识、四大组件(转)
查看>>
vim进阶学习笔记
查看>>
iOS设计模式解析(五)责任链模式
查看>>