欧几里德算法
欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。
计算原理
定理:gcd(a,b) = gcd(b,a mod b)
证明:a可以表示成a = kb + r ,则r = a mod b
假设d是a,b的一个公约数,则有 d|a, d|b,而r = a - kb,因此d|r ,因此d是(b,a mod b)的公约数
假设d 是(b,a mod...
分类:
编程语言 时间:
2015-05-26 16:09:29
阅读次数:
146
1978: [BeiJing2010]取数游戏 gameTime Limit:10 SecMemory Limit:64 MBSubmit:729Solved:451[Submit][Status][Discuss]Description小 C 刚学了辗转相除法,正不亦乐乎,这小 P 又出来捣乱,给...
分类:
其他好文 时间:
2015-05-19 22:10:20
阅读次数:
131
最小公倍数=两个整数的成绩 / 最大公约数求最大公约数的方法:(1)辗转相除法 1 #include 2 using namespace std; 3 int main() 4 { 5 int a,b,tmp,m; 6 cin>>a>>b; 7 m=a*b; 8 i...
分类:
编程语言 时间:
2015-05-15 01:18:58
阅读次数:
150
#include#include#includechar str1[100],str2[100];int len;int cal(char *str1,char *str2){ int ret=0,i; for(i=0;str1[i]&&str2[i];i++) { ...
分类:
编程语言 时间:
2015-05-09 21:59:00
阅读次数:
145
#include
using namespace std;
//举例:
// 2 | 8 6
// ----------
// 4 3
// 所以:gcd=2,lcm=2*4*3=24
//求最大公约数:辗转相除法
// 1. a ÷ b,令r为所得余数(0≤r<b)
// 若 r = 0,算法结束;b 即为答案。
// 2. 互换:置 a←b,b←r,并返回第一步
in...
分类:
编程语言 时间:
2015-05-02 13:55:12
阅读次数:
182
// 求两个数m和n的最大公约数(辗转相除法)
#include
int yue( int x, int y )
{
int temp;
int tem;
// 保证分母不为0
if( y == 0 )
{
x = temp;
temp = y;
y = x;
}
// 辗转相除法
while( tem )
{
tem = x % y;
x = y;
...
分类:
编程语言 时间:
2015-04-23 13:21:51
阅读次数:
187
2107: Spoj2832 Find The Determinant IIITime Limit: 1 SecMemory Limit: 259 MBSubmit: 154Solved: 46[Submit][Status][Discuss]DescriptionProblem code: DET...
分类:
其他好文 时间:
2015-04-22 00:07:21
阅读次数:
164
解法一:
辗转相除法,使用原理为f(x,y)表示x,y的最大公约数,取k=x/y,b=x%y,则x=ky+b,如果一个数能够同时整除x和y,则必能同时整除b和y,而能够同时整除b和y的数也必能同时整除x和y,即x和y的公约数与b和y的公约数相同的,其最大公约数也是相同的,则有f(x,y)=f(y,x%y)(y>0).
具体代码如下:
int gcd(int x,int y)
{...
分类:
其他好文 时间:
2015-04-21 09:54:49
阅读次数:
126
程序(已经Accepted):
#include
/*
* 逆向思维,从(m,n)到(1,1),
* 给定(m,n),求其父亲,若m>n,则其父亲为(m-n,n),否则为(m,n-m),
* 但是这样做会TLE,这就需要用除法代替减法,加快速度,
* 也就是辗转相除法
* */
int main(void)
{
int n, a, b, l, r, temp, i;
...
分类:
其他好文 时间:
2015-04-14 23:26:06
阅读次数:
202