| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2866 人关注过本帖
标题:求m和n的最大公约数,我写了一个递归函数,不知道为什么不行
只看楼主 加入收藏
文鹏
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2010-8-17
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:19 
求m和n的最大公约数,我写了一个递归函数,不知道为什么不行
// zui da gong yue shu
#include <stdio.h>

int aaa(int max,int min)
     {
        int i=max-min;
        
        if(i>min) aaa(i,min);
        if(i<min) aaa(min,i);
        if(i=min) return i;
     }
void main()
{
    int m,n;
    scanf("%d %d",&m,&n);
    int min=m;
    int max=n;
    if(m>n)
    {
        min=n;
        max=m;
   
    }
    int result=aaa(max,min);
    printf("%d",result);
     
}
求高手指点,如果想用递归函数解决,该怎么写
搜索更多相关主题的帖子: 递归 函数 最大公约数 
2010-08-19 11:00
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
int aaa(int a,int b)
{
    if(b) return aaa(b, a%b);
    return a;
}
这样改吧,御坂御坂自信地说

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-08-19 11:05
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
(忽略此楼)

[ 本帖最后由 卧龙孔明 于 2010-8-19 11:18 编辑 ]

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2010-08-19 11:10
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
我知道你说谁,但我不是她,御坂御坂瞪大眼睛说

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-08-19 11:16
文鹏
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2010-8-17
收藏
得分:0 
我想使用更相减损法来解决,我写的递归函数哪里出问题了?请高手指点
2010-08-19 11:17
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
那就
int aaa(int a,int b)
{
    if(b) return aaa(b, a-b);
    return a;
}
这样改吧,御坂御坂自信地说

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-08-19 11:18
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:0 
不过这样的话,输入2 1000000000的话,程序会崩溃,御坂御坂警告道

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-08-19 11:19
文鹏
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2010-8-17
收藏
得分:0 
哦,知道了,加了两个return 可以了
int aaa(int max,int min)
     {
        int i=max-min;
        
        if(i>min) return aaa(i,min);
        if(i<min) return aaa(min,i);
        if(i=min) return i;


    //if(min) return aaa(min, max%min);
    //return max;

     }
2010-08-19 11:23
文鹏
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2010-8-17
收藏
得分:0 
哦 是不是C递归 有层数限制,太深了就完了
2010-08-19 11:27
文鹏
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2010-8-17
收藏
得分:0 
看来还是用辗转相除法好点
2010-08-19 11:28
快速回复:求m和n的最大公约数,我写了一个递归函数,不知道为什么不行
数据加载中...
 
   



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

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