poj1930 Dead Fraction
思路:
循环小数化分数,枚举所有可能的循环节,取分母最小的那个。
实现:
#include <iostream>
#include <cstdio>
#include <string>
using namespace std; const int INF = 0x3f3f3f3f; int gcd(int a, int b)
{
return !b ? a : gcd(b, a % b);
} int lcm(int a, int b)
{
return a / gcd(a, b) * b;
} int toNum(string s)
{
int n = s.length();
int res = ;
for (int i = ; i < n; i++)
{
res += s[i] - '';
if (i != n - )
res *= ;
}
return res;
} int main()
{
string s;
while (cin >> s, s != "")
{
s = s.substr(, s.length() - );
int n = s.length();
int minn = INF;
int minm = ;
for (int i = ; i < n; i++)
{
int x = toNum(s.substr(i, n - i));
int y = ;
for (int j = ; j < n - i - ; j++)
{
y *= ;
y += ;
}
for (int j = ; j < i; j++)
{
y *= ;
}
int p = toNum(s.substr(, i));
int q = ;
for (int j = ; j < i; j++)
{
q *= ;
}
int l = lcm(y, q);
int tmp = l / y * x + l / q * p;
int g = gcd(tmp, l);
tmp /= g;
l /= g;
if (l < minn)
{
minn = l;
minm = tmp;
}
}
cout << minm << "/" << minn << endl;
}
return ;
}
poj1930 Dead Fraction的更多相关文章
- uva 10555 - Dead Fraction)(数论)
option=com_onlinejudge&Itemid=8&category=516&page=show_problem&problem=1496" st ...
- poj 1930 Dead Fraction(循环小数化分数)
Dead Fraction Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3478 Accepted: 1162 Des ...
- UVA 10555 - Dead Fraction(数论+无限循环小数)
UVA 10555 - Dead Fraction 题目链接 题意:给定一个循环小数,不确定循环节,求出该小数用分数表示,而且分母最小的情况 思路:推个小公式 一个小数0.aaaaabbb... 表示 ...
- Dead Fraction [POJ1930]
题意: 很有意思的一道题,,将一个无限循环小数转化成分母最小的精确分数值....,循环的部分不一定是最后一位. Sample Input 0.2... 0.20... 0.474612399... 0 ...
- POJ 1930 Dead Fraction
POJ 1930 Dead Rraction 此题是一个将无限循环小数转化为分数的题目 对于一个数 x=0.abcdefdef.... 假设其不循环部分的长度为m(如abc的长度为m),循环节的长度为 ...
- Mathematics:Dead Fraction(POJ 1930)
消失了的分式 题目大意:某个人在赶论文,需要把里面有些写成小数的数字化为分式,这些小数是无限循环小数(有理数),要你找对应的分母最小的那个分式(也就是从哪里开始循环并不知道). 一开始我也是蒙了,这尼 ...
- POJ 1930 Dead Fraction (循环小数-GCD)
题意:给你一个循环小数,化成分数,要求分数的分母最小. 思路:暴力搜一遍循环节 把循环小数化分数步骤: 纯循环小数化分数 纯循环小数的小数部分可以化成分数,这个分数的分子是一个循环节表示的数,分母各位 ...
- poj1930 数论
Dead Fraction Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 1258 Accepted: 379 Desc ...
- POJ 1930
Dead Fraction Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 1762 Accepted: 568 Desc ...
随机推荐
- 【PA2013】【BZOJ3733】Iloczyn
Description 给定正整数n和k,问是否能将n分解为k个不同正整数的乘积 Input 第一行一个数T(T<=4000)表示測试组数 接下来T行每行两个数n(n<=10^9),k(k ...
- web前端开发 代码规范 及注意事项
web前端开发 代码规范 及注意事项 外部命名规范 html .js .css文件名称命名规范 my_script.js my_camel_case_name.css my_index.html 路径 ...
- 设置Table边框的CSS
<!DOCTYPE html> <html> <head> <style> table, td, th { border: 1px solid blac ...
- ubuntu安装ibus-goolepinyin通用方法
1:获取安装包 http://code.google.com/p/libgooglepinyin/downloads/list
- YTU 2432: C++习题 对象数组输入与输出
2432: C++习题 对象数组输入与输出 时间限制: 1 Sec 内存限制: 128 MB 提交: 1603 解决: 1152 题目描述 建立一个对象数组,内放n(n<10)个学生的数据( ...
- sphinx索引部分源码续——过程:连接到CSphSource对应的sql数据源,通过fetch row取其中一行,然后解析出field,分词,获得wordhit,最后再加入到CSphSource的Hits里
后面就是初始化一些存储结构,其中重点说下缓存出来的几个临时文件分别的作用.结尾时tmp0的存储的是被上锁的Index,有些Index正在被查询使用 故上锁.tmp1,即对应将来生成的spp文件,存储词 ...
- yii2.0 ActiveRecord 查询汇总
User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的一条数据(举个例子): User::find()->w ...
- codeforces 682C C. Alyona and the Tree(dfs)
题目链接: C. Alyona and the Tree time limit per test 1 second memory limit per test 256 megabytes input ...
- 并不对劲的bzoj1500: [NOI2005]维修数列
传送门-> 这题没什么好说的……小清新数据结构题……并不对劲的人太菜了,之前照着标程逐行比对才过了这道题,前几天刚刚把这题一遍写对…… 其实这题应该口胡很容易.操作1,2,3,4,5就是普通的s ...
- hdu 2476 (string painter) ( 字符串刷子 区间DP)
String painter Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...