题目链接:http://poj.org/problem?id=1061 其实欧几里得我一直都知道,只是扩展欧几里得有点蒙,所以写了一道扩展欧几里得裸题。 欧几里得算法就是辗转相除法,求两个数的最大公约数,算法是,a,b的最大公约数是gcd(b,a%b)然后不断递归下去,直到b=0 转换成c++语言就 ...
分类:
其他好文 时间:
2017-08-09 12:59:10
阅读次数:
138
深根半夜里研究C++的语法,在弄到关于函数的定义 这一部分时突然想写个试试,就拿比较熟悉的gcd来好了。 活这么久gcd一直是用辗转相除法(或者说欧几里得算法)得出的,根据《算法导论》第三版的中文页码P547给出的伪代码,很容易就得出C++的写法。 However 当a,b比较大的时候显得特别慢,所 ...
分类:
其他好文 时间:
2017-08-07 10:10:41
阅读次数:
143
设两数为a、b(b<a),求它们最大公约数的步骤如下:用b除a,得a=bq+r(0≤r<b)(q是这个除法的商)。若r=0,则b是a和b的最大公约数。若r≠0,则继续考虑。 ...
分类:
其他好文 时间:
2017-08-06 13:58:54
阅读次数:
106
gcd(最大公因数)和lcm(最小公倍数) 辗转相除法求a和b的最大公因数和最小公倍数: 最小公倍数=a*b/最大公约数; 求最大公因数: 求最小公倍数: 题目: There is a hill with n holes around. The holes are signed from 0 to ...
分类:
其他好文 时间:
2017-08-02 22:10:29
阅读次数:
177
题目大意:给你两个数字,之后的每个数字都等于这两个数字之差的绝对值。问这列数字有多少个不同的数字。 样例输入/输出:input 7 4;output 6; 解题思路:此题使用辗转相除法的思想。首先两个数字x,y(假定y>x),则一定存在y=kx+b;例如100和7。 然后会发现这个数列是 100 7 ...
分类:
其他好文 时间:
2017-07-27 12:46:25
阅读次数:
174
别人总结的,很详细,http://www.cnblogs.com/frog112111/archive/2012/08/19/2646012.html 欧几里得算法,就是人们常说的辗转相除法,比较好理解,主要作用是求两个数最大公约数,最小公倍数也可方便的求出 1 int gcd(int a,int ...
分类:
其他好文 时间:
2017-07-26 17:37:22
阅读次数:
156
辗转相除法 求最小公倍数 冒泡排序 1、辗转相除法求最大公约数,简写为gcd。应用:化简分数,即分子分母同时除以最大公约数。 2、最小公倍数,least common multiple,简写为lcm。 3、排序之对数字 排序对象, c++创建对象的方式:http://blog.csdn.net/az ...
分类:
编程语言 时间:
2017-07-21 22:04:49
阅读次数:
156
拓展欧几里得算法,由欧几里得算法(辗转相除法)得来。 先介绍欧几里得算法: 求两个数的最大公约数,根据简单的证明(就不证了)可得: gcd(a,b)==gcd(b,a%b); 所以可以写出代码: 接下来是拓展欧几里得算法: 首先我们需要知道gcd(a,b)==gcd(b,a%b)==gcd(b,a- ...
分类:
其他好文 时间:
2017-07-16 20:47:40
阅读次数:
201
主要熟悉了JAVA之中this的用法,以及按照提示的scheme写出辗转相除法的递归算法。 代码如下: 1 package lab2; 2 /* Fraction.java */ 3 4 import java.io.*; 5 6 /** The Fraction class implements ...
分类:
其他好文 时间:
2017-07-16 18:30:27
阅读次数:
236
欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。 递归版算法: 递归优化版: 迭代版: 扩展欧几里德算法 基本算法:对于不完全为 0 的非负整数 a ...
分类:
编程语言 时间:
2017-07-16 00:49:26
阅读次数:
353