最大公约数

来源:互联网 发布:大数据质量标准 编辑:程序博客网 时间:2024/05/20 18:47

整理一下求最大公约数的几种方法
1 辗转相除法
a 递归方法

int gcd(int a,int b){    if(b==0) return a;    else return gcd(b,a%b);} 

b 非递归

int gcd(int a,int b){    int r;    while(b!=0)    {        r=b;        b=a%b;        a=r;    }    return a;} 

2 相减

int gcd(int a,int b){    while(a!=b)    {        if(a>b)            a=a-b;        if(a<b)            b=b-a;    }    return a;}

当两个整数a与b相差很大之时用第二种方法就比较浪费时间,比如说1与1000,这个时候用第二种方法显然要执行很多次a-b,算法执行效率较低,这个时候用辗转相除法显然更高效。

原创粉丝点击