| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2620 人关注过本帖
标题:关于求两个整数的最大公约数的函数翻译
只看楼主 加入收藏
leehom88
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-10-22
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
关于求两个整数的最大公约数的函数翻译
看了书上的一个关于求两个整数的最大公约数题目,但是其中一个函数没有看懂,请高手帮忙翻译一下.


int fn1(inti,intj)
{
    int temp;
    if(i<j)
    {
    temp=i;
    i=j;
    j=i;
    }
    while(j!=0)
    {
    temp=i%j;
    i=j;
    j=temp;
    }
    return i;
}
最好能没行都翻译,或者能告诉我是通过什么公式实现最大公约数的功能的,欢迎高手指导,谢谢了!
搜索更多相关主题的帖子: 翻译 最大公约数 函数 整数 
2009-10-26 21:28
qlc00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:157
专家分:540
注 册:2007-11-26
收藏
得分:10 
int fn1(inti,intj)
{
    int temp;
    if(i<j) //总是使i的值最大,为后面的求余做准备
    {
    temp=i; //交换值
    i=j;
    j=i;
    }
    while(j!=0)
    {
    temp=i%j; //使用数学中的辗转相除法(这个你要是不知道的话我也不会讲的
    i=j;
    j=temp;
    }
    return i; //这个就是最大公约数
}

Anything is possible!
2009-10-26 23:18
qlc00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:157
专家分:540
注 册:2007-11-26
收藏
得分:0 
int fub(int a,int b)
{
int k;
if(a<b)
{
int temp=a;a=b;b=temp;
for(k=b;k>1;k++)
if(a%k==0&&b%k==0)
return k;
else
return 1;
}
}
这个方法应该好理解些!

Anything is possible!
2009-10-26 23:22
cookies5000
Rank: 2
等 级:论坛游民
帖 子:33
专家分:48
注 册:2009-10-25
收藏
得分:0 
同意qlc00,求公约数就是一个算法,这个算法好象不太常用。交换算法用得很多。。。很多。。。
2009-10-26 23:31
shiyuehai
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:96
专家分:116
注 册:2009-9-4
收藏
得分:0 
自己查下辗转相除法是怎么一回事就看得懂了
2009-10-27 09:12
guojianzheng
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-2-19
收藏
得分:0 
我在书上看的是辗转相除法,看看慢慢理解下就会应该
2009-10-27 11:56
leehom88
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2009-10-22
收藏
得分:0 
感谢qlc00,感谢所有回帖的朋友!!!
2009-10-27 22:23
快速回复:关于求两个整数的最大公约数的函数翻译
数据加载中...
 
   



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

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