求C++程序:求两个数最大公约数,用递归实现

求C++程序:求两个数最大公约数,用递归实现,第1张

long gcd(long m,long n)const //求最大公因数;

{

static long x;//设置x具有静态生存期;

if(m>n)//判断大的%小的得余数

{

if(n==0)x=m;//递归出口,当有一个为0时,另一个为最大公因数

else gcd(n,m%n);将余数与小数再求最小公因式;

}

else

{

if(m==0)x=n;

else gcd(m,n%m);

}

return x;

}

#include<stdioh>

void swap(int m,int n){

int t;

if(m < n){

t = n;

n = m;

m = t;

}

}

int f(int m,int n){

if(m%n == 0)return n;

else

return f(n,m%n);

}

int main(){

int p = 0,m = 0,n = 0;

printf("请按照由大到小的顺序输入两个整数,用空格隔开:\n");

scanf("%d%d",&m,&n);

swap(m,n);

p = f(m,n);

printf("两个数的最大公约数是:%d\n",p);

return 0;

}

def gys(x,y):

    a,b=max(x,y),min(x,y)

    c=a%b

    if c==0:

        return b

    else:

        return gys(b,c)

不知道行不行 你试试

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/11677317.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存