设两数为a、b(a>b),求a和b最大公约数(a,b)的步骤如下:用a除以b,得a÷b=q......r1(0≤r1)。若r1=0,则(a,b)=b;若r1≠0,则再用b除以r1,得b÷r1=q......r2 (0≤r2).若r2=0,则(a,b)=r1,若r2≠0,则继续用r1除r2,……如此下去,直到能整除为止。其最后一个为被除数的余数的除数即为(a, b)。
例如:a=25,b=15,a/b=1......10,b/10=1......5,10/5=2.......0,最后一个为被除数余数的除数就是...
分类:
其他好文 时间:
2015-07-13 10:19:47
阅读次数:
289
辗转相除法:当a % b=0 时gcd(a,b)=b,否则gcd(a,b)=gcd(b,a%b)原理:(来源于百度)设两数为a、b(b1),则m=kn+xd=kyd+xd=(ky+x)d,则a=mc=(ky+x)dc,b=nc=ycd,故a与b最大公约数成为cd,而非c,与前面结论矛盾】从而可知gc...
分类:
其他好文 时间:
2015-07-12 17:13:13
阅读次数:
114
先看欧几里得算法 即辗转相除法
gcd(a, b) = gcd(b, a % b);
简单的证明
证明: 令a % b = r
设 d 是 a,b 的公约数 即 d|a && d|b
又 r = a – kb 所以 r|d 即a,b的公约数都是 b,r的公约数
设 d’ 是 b, r 的公约数 即 d’|b && d’|r
又 a = kb + r 所以d’|a 即 b,r...
分类:
其他好文 时间:
2015-07-12 12:52:17
阅读次数:
110
#include
using namespace std;
int main(void)
{
int x, y, num1, num2, temp;
printf("请输入两个正整数:\n");
scanf("%d %d", &num1, &num2);
if(num1 < num2)//交换
{
num1^=num2;...
分类:
编程语言 时间:
2015-07-11 20:16:33
阅读次数:
140
题目的意思是:兔子随便躲在一个洞里,狼从 0 号洞开始找,每次找下一个是往后数 m个,全部洞组成环状的。
输入的m和n,洞是 0 号 到 n - 1 号。
m和n的最大公约数是1,则狼每个洞都可以找到。否则,则有些洞就会被忽略,而那些洞是安全的。
下面的是AC的代码:
#include
using namespace std;
int GCD(int a, int b)
{
int ...
分类:
其他好文 时间:
2015-07-08 14:37:24
阅读次数:
112
题目189题目信息运行结果本题排行讨论区
兔子的烦恼(一)
时间限制:1000 ms | 内存限制:65535 KB
难度:2
描述
在一座山上有n个山洞(每个洞从0~n-1分别编号),这山上有一只兔子躲在山洞里,有一只狼,从编号为0的山洞开始入洞,每隔m-1个洞,再次入洞抓兔子,现在问,兔子能否避免这场灾难?
例如:m=2 and n=6, 狼将要进入的山洞号为:0,2,...
分类:
其他好文 时间:
2015-07-07 22:57:07
阅读次数:
175
/*
==================================================================
题目:求两个数的最大公约数和最小公倍数。
==================================================================
*/
#include
main()
{
int m,n,r,t,j...
分类:
编程语言 时间:
2015-07-07 07:05:37
阅读次数:
141
辗转相除法 int gcd(int m, int n){ int remainder; while(remainder!= 0){ remiander = m%n; m = n; n = remainder; } return m; }有两整数a和b:① a%b得余数c② 若c=0,则b即为两数的最...
分类:
其他好文 时间:
2015-07-06 19:33:17
阅读次数:
95
题目描述: 输入2个数字,最后输出2个数字的最大公约数
题目类别: 位运算
难度: 初级
运行时间限制: 无限制
内存限制: 无限制
阶段: 入职前练习
输入: 2个整数
输出: 输出数字1和2的最大公约数
样例输入: 2 3
样例输出: 1
代码/*---------------------------------------
* 日期:2015-07-...
分类:
其他好文 时间:
2015-07-05 16:46:07
阅读次数:
174
最大公约数问题问题描述 写一个程序,求两个正整数的最大公约数。如果两个正整数都很大,有什么简单的算法吗?分析与解法【解法一】 最简单的实现,就是直接用代码来实现辗转相除法。从上面的描述中,我们知道,利用递归就能够很轻松地把这个问题完成。 具体代码如下: 1 package chapter2sh...
分类:
其他好文 时间:
2015-07-05 12:23:46
阅读次数:
157