读书人

急新手! 还是那些小疑点!

发布时间: 2012-10-23 12:12:22 作者: rapoo

急急急!!!新手求助!! 还是那些小问题!!

C/C++ code
#include<stdio.h>/* 用欧几里德算法求最大公约数 */int main(){     //求两个数的最大公约数    int m ,n,l,t,r;        printf("请输入第一个整数:\n");    scanf("%d",&n);    printf("请输入第二个整数:\n");    scanf("%d",&m);        t = m*n / gcd(m,n);            printf("%d",t);    }     int gcd(int n , int m){    int l,r;        //判断m,n 的大小    if(m>n)    {        m= l;        l= n;        n= m;    }            while(1)    {        r= m%n;                            if(r==0)        {            return r;             break;        }            m = n ;            n = r;    }         }     就是求不出自己想要的结果!!  


[解决办法]
C/C++ code
int gcd(int n , int m){    int l,r;        //判断m,n 的大小    if(m<n)  /// 【修改判断条件,保证处理之后m >= n】    {        l= n; /// 【调整次序】        n= m;        m= l;    }            while(1)    {        r= m%n;                            if(r==0)        {            return n;  /// 【return n】        }            m = n ;            n = r;    }         }
[解决办法]
经典的递归算法!
C/C++ code
#include<stdio.h>/* 用欧几里德算法求最大公约数 */int GCD(int x,int y);int main(){    //求两个数的最大公约数    int m ,n,l,t,r;    printf("请输入第一个整数:\n");    scanf("%d",&n);    printf("请输入第二个整数:\n");    scanf("%d",&m);    t = GCD(m,n);    printf("Result : %d",t);    return 0;}int GCD(int x,int y){    return (!y) ? x : GCD(y,x%y);}
[解决办法]
你这gcd函数看起来有点不顺眼啊

读书人网 >C语言

热点推荐