首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-10-23 
急急急!!!新手求助!! 还是那些小问题!!C/C++ code#includestdio.h/* 用欧几里德算法求最大公约数 */int

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

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函数看起来有点不顺眼啊

热点排行