对于两个整数x,y,求其最大公约数(语言:C,C++)原理:辗转除法求最大公约数:就是不断的用除数去除以余数,直到余数为0 ,最终得到的除数就是该两个数的最大公约数1.递归法:intgcd(int x,int y){intresult;if(y==0)result=x;elseresult=gcd(...
分类:
其他好文 时间:
2015-10-13 21:02:50
阅读次数:
194
辗转相除法 设两数为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除以r....
分类:
其他好文 时间:
2015-10-03 20:37:43
阅读次数:
215
对于求解两个数的最小公约数,能够通过两种方法进行解决,下面是具体的程序:程序一:#include<stdio.h>intmain(){inta[2];inti,min,max;for(i=0;i<2;i++)scanf("%d",&a[i]);if(a[0]<a[1]){min=a[0];max=a[1];}else{min=a[1];max=a[0];}for(i=min;i>0;i--)i..
分类:
其他好文 时间:
2015-10-01 07:02:11
阅读次数:
239
//求两个数的最大公约数
#include<stdio.h>
intmain()
{
intnum1,num2;
inttemp;
scanf("%d%d",&num1,&num2);
//核心算法
while(num1%num2!=0)
{
temp=num2;
num2=num1%num2;
num1=temp;
}
printf("最大公约数为:%d\n",num2);
return0;
}
分类:
编程语言 时间:
2015-09-29 19:02:26
阅读次数:
291
#include<stdio.h>intmain(){intx,y,z;printf("请输入两个数:\n");scanf("%d%d",&x,&y);if(x>y){z=y;if(x%y==0)printf("最大公约数为:%d\n",y);elsefor(;z>0;z--){if((x%z==0)&&(y%z==0)){printf("最大公约数为:%d\n",z);break;}}}else{z=x;if(y%x..
分类:
其他好文 时间:
2015-09-29 15:02:48
阅读次数:
188
------------------------------------------------------------------------------------------------------最大公约数(又叫最大公因数):指两个或者多个整数共有约数中最大的一个。求最大公约数有多种方法,常见的有质因数分解法、短除法、辗转相除法、更相减损法。在这里..
分类:
编程语言 时间:
2015-09-29 14:56:25
阅读次数:
217
思路:
辗转相除法:以小的数除大数,所得的是整数,那这个数就是最大公约数,不然就用余数来除刚才的除数,直到得到整数,这时作为除数的就是最大公约数。
#include<stdio.h>
intmain()
{
intm,n,t,p;
printf("请输入两个数:");
scanf("%d%d",&m,&n);
i..
分类:
编程语言 时间:
2015-09-29 01:21:34
阅读次数:
159
#include void main() /* 辗转相除法求最大公约数 */ { int m,n,a,b,t,c; scanf("%d%d",&a,&b); m=a; n=b; while(b!=0) /* 余数不为0,继续相除,直到余数为0 */ { c=a%b; a=b; b=c;...
分类:
其他好文 时间:
2015-09-27 21:32:43
阅读次数:
199
给我们n个数,然后有m个询问,每个询问为L,R,询问区间[L,R]的最大最小值,最小公约数,最大公约数,和,异或,或,且这些问题通通可以用RMQ的思想来解决。以下用xor来作为例子设dp[i][j]为以i开头的,长度为2^j的区间的所有值得异或那么dp[i][j] = dp[i][j-1] xor ...
分类:
其他好文 时间:
2015-09-24 21:04:34
阅读次数:
405
读了第一章的愚公移山,让我更深刻的体会到了编程的精义,就是把一个复杂的问题分解成一个个小问题,逐个解决。就像编写一个最大公约数,就要先想出两个数的最小公倍数,而最小公倍数的求法,就可以用1开始一直除到这个数的一半,然后再找出能除尽的最大的数。这样,一个问题就被我们分解开,快速的解决。 而第二...
分类:
其他好文 时间:
2015-09-23 18:39:45
阅读次数:
211