| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6291 人关注过本帖
标题:如何用c语言编程用辗转相减法求两数最大公约数
只看楼主 加入收藏
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
结帖率:95.45%
收藏
已结贴  问题点数:10 回复次数:5 
如何用c语言编程用辗转相减法求两数最大公约数
程序代码:
#include<stdio.h>
int gcd(int m,int n)
{int c;
c=gcd(m,n);
if (m==n)
   c=m;
else if(m<n)
       c=gcd(m,n);
     else c=gcd(m-n,n);
return c;
}
int main()
{
    int m,n,c;
    int gcd(m,n);
    c=gcd(m,n);
    scanf("%d,%d",&m,&n);
    printf("%d",c);
    return 0;
}
求各位帮忙改一下这个程序
搜索更多相关主题的帖子: c语言编程 公约数 如何 
2014-10-19 19:26
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
收藏
得分:3 
给你改了,你看下
程序代码:
#include<stdio.h>
#include<stdlib.h>
int gcd(int m,int n)
{
    int c;
if (m==n)
   c=m; 
else if(m<n)
     c=gcd(n,m);
     else  
     c=gcd(m-n,n);
return c;
}

int main()
{
    int m,n,c;
    int gcd(int m,int n);
    scanf("%d,%d",&m,&n);
    c=gcd(m,n);
    printf("%d",c);
    system("pause");
    return 0;
}
2014-10-19 20:43
erty1001
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:331
专家分:1433
注 册:2014-8-31
收藏
得分:3 
简单说说:

楼上改的确实正确 这个错误是很简单的问题

我简单再优化一点点
程序代码:
#include<stdio.h>
#include<stdlib.h>
int gcd(int m,int n)
{
    if (m==n) return m;   //其实想要更快 这条往该段的后面写更好
    if(m<n) return gcd(n-m,m);
    return gcd(m-n,n);
}

int main()
{
    int m,n;
//  int gcd(int m,int n);
    scanf("%d,%d",&m,&n);
    printf("%d",gcd(m,n));
    system("pause");
    return 0;
}

2014-10-19 21:08
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
谢谢各位include<stdlib.h>用来做什么?提示系统干什么,还有system("pause")语句输出什么?

一片落叶掉进了回忆的流年。
2014-10-19 23:02
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
以下是引用诸葛欧阳在2014-10-19 23:02:00的发言:

谢谢各位include<stdlib.h>用来做什么?提示系统干什么,还有system("pause")语句输出什么?



c语言以函数为主  除了你可以自己编写自定义函数之外  你还不可避免的要使用系统自带的库函数  包含相关的头文件就是干这个的

DO IT YOURSELF !
2014-10-20 08:48
磨炼之顺
Rank: 1
等 级:新手上路
帖 子:3
专家分:4
注 册:2014-10-17
收藏
得分:3 
scanf("%d,%d   不用逗号
2014-10-20 10:29
快速回复:如何用c语言编程用辗转相减法求两数最大公约数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057950 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved