本程序实现的是十进制与不同进制之间的的数据转换,利用的数据结构是栈,基本数学方法辗转相除法。 conversion.h #include<stack> using namespace std; //将十进制的数据n转换成m进制的数据 stack<int> conversion(unsigned in ...
分类:
编程语言 时间:
2017-07-11 20:59:18
阅读次数:
161
辗转相除法(欧几里得算法)是求最大公约数的算法,首先用较大的数除以较小的数,求得商与余数,把余数作为除数,即用原来的除数除以余数,求得商与余数。以此类推,直到余数为零时,除数即为原来两数的最大公约数。 一.递归算法 二.循环版本 ...
分类:
其他好文 时间:
2017-07-05 00:21:58
阅读次数:
191
欧几里德算法又称为辗转相除法,用于计算两个非负整数的最大公因数。其伪代码如下: gcd(a, b) //要求保证传入的a>=b if(b == 0) return a return gcd(b, a % b) 首先说明这个函数能返回a与b的最大公因数。但是我们不从代码到原理,我们要从原理返回代码。( ...
分类:
编程语言 时间:
2017-07-04 01:06:08
阅读次数:
437
欧几里得& 拓展欧几里得(Euclid & Extend-Euclid) 欧几里得算法(Euclid) 背景: 欧几里德算法又称辗转相除法。用于计算两个正整数a。b的最大公约数。 ——百度百科 代码: 递推的代码是相当的简洁: int gcd(int a,int b) { return b == 0 ...
分类:
编程语言 时间:
2017-07-03 16:14:02
阅读次数:
173
挑战上的没有看特别懂 所以从网上搜索了下 感觉能看懂 辗转相除法的证明 设两数为a、b(b<a),求它们最大公约数的步骤如下:用b除a,得a=bq+r(0≤r<b)(q是这个除法的商)。 若r=0,则b是a和b的最大公约数。 若r≠0,则继续考虑。 首先,应该明白的一点是任何 a 和 b 的公约数都 ...
分类:
其他好文 时间:
2017-06-09 00:44:39
阅读次数:
282
辗转相除法,又称欧几里得算法。两个正整数a和b(a>b),它们的最大公约数等于余数c和较小的数b之间的最大公约数。最小公倍数=两数之积/最大公约数 #include <stdio.h>int get1(int a, int b){ if (a < b) { int c = a; a = b; b = ...
分类:
编程语言 时间:
2017-05-30 15:55:46
阅读次数:
215
1. 求1-N的和: 求数组数据的和 2. 求斐波那契数列 3. 求最大最小值 4. 为数组元素排序(将数组SCORE名次降序保存到数组RANK中) 5. 二维数组的操作(求二维数组不同行的总和) 6. 欧几里得互除法&辗转相除法(求两数最大公约数) ...
分类:
编程语言 时间:
2017-05-25 23:21:08
阅读次数:
185
1、利用辗转相除法求出最大公约数 2.得到最大公约数后,两数相乘除以最大公约数即的最小公倍数 ...
分类:
其他好文 时间:
2017-05-23 22:39:55
阅读次数:
162
欧几里得算法:也被称作辗转相除法 gcd(a,b)=gcd(b,a%b); 终止条件a=gcd b=0; (gcd为a,b的最大公约数) 扩展欧几里得算法: a 和 b 的最大公约数是 gcd ,一定能够找到这样的 x 和 y ,使得: a*x + b*y = gcd 成立 我们只需要找到特殊解x0 ...
分类:
编程语言 时间:
2017-05-23 00:33:19
阅读次数:
191
辗转相除法用得比较多,今天Mark一下。具体做法就是:如果q和r分别是m除以n的商及余数,即m=nq+r,那么m和n的最大公约数等于n和r的最大公约数。 代码如下: ...
分类:
编程语言 时间:
2017-05-18 21:28:57
阅读次数:
190