求最大公约数实际上是一个非常简单的问题,但是在ACM中如何将效率搞的最高也需要一点点技巧。下面将今天收集到的一点资料粘贴在此处。书上是说: 1.输入m、n(m为被除数,n为除数)2.m/n得余数r。3.判断r=0?是的话n为最大公约数。4.否则将n赋给m,r赋给n,循环2.辗转相除法:如: 求(45...
分类:
其他好文 时间:
2014-07-22 00:08:35
阅读次数:
219
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2028题目大意:求最小公倍数,用辗转相除法。 1 #include 2 int main () 3 { 4 int gcd(int a,int b); 5 int a,b,n,i,c; ...
分类:
其他好文 时间:
2014-07-18 17:37:40
阅读次数:
305
【程序员编程艺术】学习记录2:左旋转字符串之循环移位法
GCD算法:(辗转相除法/欧几里得算法)
gcd是求最大公约数的算法,作为TAOCP第一个算法
gcd算法流程:
首先给定两个整数m,n(m大于等于n)如果小于则直接交换再处理
①求余数 r=m%n
②假如r=0,算法结束,n即为所求
否则,重新令m
STL中rotate算法:
对于数组移位问题,可以采用下面方法:...
分类:
其他好文 时间:
2014-07-18 16:38:35
阅读次数:
243
本题使用所谓的辗转相除法。
还需要逆过来遍历二叉树。可以想象给出的数据点是根节点,然后遍历到根节点(1,1)。
考的是根据给出的规则,总结规律的能力。
#include
namespace BinaryTree2499_1
{
int main()
{
int T, a, b, le, ri;
scanf("%d", &T);
for (int t = 1; t <= T; t...
分类:
其他好文 时间:
2014-07-06 08:11:00
阅读次数:
164
描述
欧几里德算法
别名:辗转相除法
用途:计算两个正整数a,b的最大公约数
欧几里德拓展算法
扩展欧几里德算法是用来在已知a, b求解一组x,y,使它们满足等式:
ax+by=gcd(a,b)=d(解一定存在,根据数论中的相关定理)。扩展欧几里德常用在求解模线性方程及方程组中。
代码
C++ 欧几里德LL gcd (LL a, LL b) {
ret...
分类:
其他好文 时间:
2014-07-03 16:20:26
阅读次数:
198
最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们的公倍数,当中一个最小的公倍数是他们的最小公倍数,相同地,若干个整数公有的倍数中最小的正整数称为它们的最小公倍数,维基百科:定义点击打开链接求最小公倍数算法:最小公倍数=两整数的乘积÷最大公约数求最大公约数算法:(1)辗转相除法有两整数a和b:...
分类:
编程语言 时间:
2014-07-02 18:12:29
阅读次数:
250
求两个正整数的最大公约数是一个很古老且很基本的问题,欧几里得在其著作《几何原本》中给出了高效的解法——辗转相除法,也叫做欧几里得算法。下面我们来看下求最大公约数的一些方法。
方法一
我们先来看欧几里得的辗转相除法。原理很简单,假设用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 #include 2 3 int main() 4 { 5 unsigned long a, b, c=0; //两个整数和临时变量 6 unsigned long lc...
分类:
其他好文 时间:
2014-06-18 09:34:46
阅读次数:
243
#include #include int main(){ int b,c,y;
system("color 0A"); printf("输入被除数和除数:"); scanf("%d%d",&b,&c); y=b%c;
if(y==0) print...
分类:
编程语言 时间:
2014-06-02 14:07:54
阅读次数:
258
辗转相除法的目的:求两个树的最大公约数
设两数为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