求两个正整数的最大公约数是一个很古老且很基本的问题,欧几里得在其著作《几何原本》中给出了高效的解法——辗转相除法,也叫做欧几里得算法。下面我们来看下求最大公约数的一些方法。
方法一
我们先来看欧几里得的辗转相除法。原理很简单,假设用f(x,y)表示x和y的最大公约数,我们令x>y,则有x=ky+b,如果一个数能够同时整除x和y,则必能同时整除b和y,而能够同时整除b和y的数也必能同时整除x和y,即x和y的公约数与b和y的公约数相同,因此二者的最大公约数也相同,则有f(x,y)=f(y,x%y),一...
分类:
其他好文 时间:
2014-06-20 11:10:03
阅读次数:
191
题目——求两个整数的最大公约数
思路1、穷举算法
public static voidmain(String[] args) throws IOException {
Scannerscanner = new Scanner(System.in);
inta = scanner.nextInt();
intb = scanner.nextInt();
System.out.println(...
分类:
其他好文 时间:
2014-06-07 16:27:13
阅读次数:
253
该教程是F403科技创意室基于RT5350开发板写的openwrt中文教程!该教程还会不断更新!让广大读者,彻底掌握openwrt系统的开发!跟我们一起来学习openwrt吧!物联网的时代!...
分类:
其他好文 时间:
2014-06-07 13:43:23
阅读次数:
537
果然Java还是不靠谱啊,一个NaN把我整了半天~~
题目大意:
有一个正多边形,给出任意三个顶点的坐标,求这个正多边形的最小面积。
解题思路:
首先要知道这三个顶点组成的三角形的外接圆一定是这个正多边形的外接圆。
用过计算出三角形的三边长,可以计算出三角型面积,进而推出外接圆半径。
可以得到三个圆心角,找出最大公约数,那就是最大角度。
就可以计算出多边形面积了~~
...
分类:
其他好文 时间:
2014-06-05 01:10:27
阅读次数:
300
http://poj.org/problem?id=3101这道题就是求所有分子的最小共倍数和分母的最大公约数。 1 import
java.math.BigInteger; 2 import java.util.*; 3 import java.util.Arrays; 4 public
clas...
分类:
其他好文 时间:
2014-06-02 16:48:42
阅读次数:
255
求最大公约数。 1 //Accepted 228 KB 0 ms 2 #include 3
#include 4 int gcd(int a,int b) 5 { 6 if (b==0) return a; 7 return gcd(b,a%b); 8
} 9 int...
分类:
其他好文 时间:
2014-05-26 02:54:42
阅读次数:
199
定理如下:
对任意非负整数a和任意正整数b, gcd(a,b) = gcd(b,a mod b)
首先证明 gcd(a,b) | gcd(b,a mod b)
设 gcd(a,b) = d
a mod b = a - b*k (k = a/b 向下取整的整数)
易得 d | a mod b 和 d | b 得出 d | gcd(b,a mod b) (d 为 最大公约数的一个因数)
接...
分类:
其他好文 时间:
2014-05-25 22:57:48
阅读次数:
353
出题:给定一个数字序列,其中每个数字最多出现两次,只有一个数字仅出现了一次,如何快速找出其中仅出现了一次的数字;分析:由于知道一个数字异或操作它本身(X^X=0)都为0,而任何数字异或操作0都为它本身,所以当所有的数字序列都异或操作之后,所有出现两次的数字异或操作之后的结果都为0,则最后剩下的结果就...
分类:
其他好文 时间:
2014-05-25 22:21:55
阅读次数:
411
辗转相除法的目的:求两个树的最大公约数
设两数为a、b(a > b),求它们最大公约数的步骤如下:
设q = a / b,r = a % b, 得a=bq+r(0≤r<b)。
1)若r = 0, 则b是a和b的最大公约数。
2)若r≠0,则继续考虑。可以证明:a 和 b 的最大公约数也是 b 和 r 的最大公约数
那么在第二种情况下公约数的关系就有一个递推传递的关系。
就是 a...
分类:
其他好文 时间:
2014-05-25 11:00:27
阅读次数:
168
题目连接:uva 1393 - Highways
题目大意:给定一个m?n的矩阵,将矩阵上的点两两相连,问有多少条直线至少经过两点。
解题思路:头一次做这种题目,卡了一晚上。
dp[i][j]即为i?j的矩阵中有多少条红色的线,然后最后答案*2,即水平翻转下蓝色的线。很容易发现,所有的线都过ij互质的点(即最大公约数为1)。然后用容斥原理求出ans。
#include
#in...
分类:
其他好文 时间:
2014-05-25 09:51:21
阅读次数:
266