Mathematics:Dead Fraction(POJ 1930)
              
题目大意:某个人在赶论文,需要把里面有些写成小数的数字化为分式,这些小数是无限循环小数(有理数),要你找对应的分母最小的那个分式(也就是从哪里开始循环并不知道)。
一开始我也是蒙了,这尼玛什么鬼啊,后来百度了一下,原来这是小学的奥赛题?所有的无限循环小数都可以化为有理分式。
公式:
  
接下来就是找分母最小的那个,这个因为可以化简,所以直接用gcd就可以了
果然涉及数学我就不太行惹,参考http://blog.csdn.net/xinghongduo/article/details/6231107
#include <iostream>
#include <functional>
#include <algorithm>
#include <math.h> using namespace std; int gcd(const int,const int); static char str[]; int main(void)
{
int sum, last, length, k, c, i, a, b, div, min_a, min_b;
while (~scanf("%s", str))
{
if (strlen(str) == && str[] == '')
break;
sum = ; length = ; min_b = INT_MAX;
for (i = ; str[i] != '.'; i++)
{
sum = sum * + str[i] - '';
length++;
}
c = (int)pow(10.0, length);
for (i = , last = sum, k = ; i <= length; i++)
{
//不需要从0开始,没意义
last /= ; k *= ; c /= ; a = sum - last;//取不循环部分
b = c*(k - ); div = gcd(a, b);
if (b / div < min_b)
{
min_a = a / div;
min_b = b / div;
}
}
printf("%d/%d\n", min_a, min_b);
}
return ;
} int gcd(const int a, const int b)
{
if (b == )
return a;
return gcd(b, a%b);
}

Mathematics:Dead Fraction(POJ 1930)的更多相关文章
- POJ 1930 Dead Fraction
		
POJ 1930 Dead Rraction 此题是一个将无限循环小数转化为分数的题目 对于一个数 x=0.abcdefdef.... 假设其不循环部分的长度为m(如abc的长度为m),循环节的长度为 ...
 - poj 1930 Dead Fraction(循环小数化分数)
		
Dead Fraction Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3478 Accepted: 1162 Des ...
 - POJ 1930
		
Dead Fraction Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 1762 Accepted: 568 Desc ...
 - uva 10555 - Dead Fraction)(数论)
		
option=com_onlinejudge&Itemid=8&category=516&page=show_problem&problem=1496" st ...
 - UVA 10555 - Dead Fraction(数论+无限循环小数)
		
UVA 10555 - Dead Fraction 题目链接 题意:给定一个循环小数,不确定循环节,求出该小数用分数表示,而且分母最小的情况 思路:推个小公式 一个小数0.aaaaabbb... 表示 ...
 - POJ 1930 Dead Fraction (循环小数-GCD)
		
题意:给你一个循环小数,化成分数,要求分数的分母最小. 思路:暴力搜一遍循环节 把循环小数化分数步骤: 纯循环小数化分数 纯循环小数的小数部分可以化成分数,这个分数的分子是一个循环节表示的数,分母各位 ...
 - Mathematics:Pseudoprime numbers(POJ 3641)
		
强伪素数 题目大意:利用费马定理找出强伪素数(就是本身是合数,但是满足费马定理的那些Carmichael Numbers) 很简单的一题,连费马小定理都不用要,不过就是要用暴力判断素数的方法先确定是 ...
 - Mathematics:Semi-prime H-numbers(POJ 3292)
		
Semi-prime H-numbers 题目大意,令4n+1的数叫H数,H数素数x的定义是只能被x=1*h(h是H数),其他都叫合数,特别的,当一个数只能被两个H素数乘积得到时,叫H-semi数 ...
 - Mathematics:X-factor Chains(POJ 3421)
		
X链条 题目大意,从1到N,1 = X0, X1, X2, …, Xm = X中间可以分成很多数,另Xi < Xi+1 Xi 可以整除Xi+1 ,求最大长度m和m长度的链有多少条 思路: 很简单 ...
 
随机推荐
- oracle中一些用法总结
			
1. case用法: --简单case函数 case sex when '1' then 'boy' when '2' then 'girl' else '其他' end; --case搜索函数 ca ...
 - Java基础相关总结
			
临近面试,权当复习了吧 final相关 定义常量的方法 eg:final int i=0;//则i不能被修改 final修饰的类不能被继承,因此没有子类,且它的类中的方法默认是final final ...
 - jquery获取文本框的内容
			
使用jquery获取文本框的内容有以下几种: 1.根据ID取值(id属性): // javascript <script type="text/javascript"> ...
 - C++调用shell
			
1.直接采用system() 2.popen http://www.cnblogs.com/xitang/p/4288808.html
 - struts2-(2)HelloWorld
			
1.环境配置 1).进入http://struts.apache.org/download.cgi#struts23241 下载 struts官方源码 2).解压,进入apps/struts2-bla ...
 - mongodb 释放磁盘空间
			
db.copyDatabase("from","to","127.0.0.1:16161"); 将127.0.0.1上的from库.拷贝到t ...
 - BZOJ3052——糖果公园
			
0.题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3052 1.题目大意:给定一颗n个点的无根树,每个点有一个颜色,要进行q次操作,有两种操 ...
 - BZOJ 1057: [ZJOI2007]棋盘制作
			
Decsription 给你一个矩阵,求最大了 01相间 的矩阵. Sol DP+悬线法. 这是一个论文啊 <浅谈用极大化思想解决最大子矩形问题>--王知昆. 枚举每一根悬线,记录最左/右 ...
 - ListView滑动位置精准记忆
			
需求场景:一个ListView页面,滑动阅读到某一位置,然后退出页面,下次再进入页面的时候,想要直接滑动到上次阅读的位置. 方案1:页面退出的时候,ListView.getFirstVisiblePo ...
 - echart字符云之添加点击事件
			
// 路径配置 require.config({ paths : { echarts : 'jquery/echarts-2.2.7/build/dist' } }); // 使用EChart.js画 ...