Chinaunix首页 | 论坛 | 博客
  • 博客访问: 601121
  • 博文数量: 129
  • 博客积分: 8026
  • 博客等级: 中将
  • 技术积分: 1300
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-21 14:39
文章分类

全部博文(129)

文章存档

2011年(1)

2007年(26)

2006年(102)

我的朋友

分类:

2006-07-13 10:32:10

求任意两个正整数的最大公约数:
function gcd1($m,$n) {
    return (
$m $n == 0)  ?  $n :   gcd1($n,$m $n
);
 }

function 
gcd2($m,$n
){
    return (
$m $n) ? gcd2($m,$n $m) : gcd2($n$m $n
);
}

function 
gcd3($m$n
){
    while(
$n 0
){
        
$r $m $n
;
        
$m $n
;
        
$n $r
;
    }
    return 
$m
;
}

function 
gcd4($m$n
){
    if(
$m == $n) return $n
;
    elseif(
$m $n) return gcd4($m$n-$m
);
    else return 
gcd4($m-$n,$n
);
}

function 
gcd5($m$n
){
    while(
$m != $n
){
        if(
$m $n$n -= $m
;
        else 
$m -= $n
;
    }
    return 
$n
;
}
 

呵,有递归有迭代,不过没有考虑非法参数的处理,如负数或0等,朋友们如果有其它的方法也请赐教..

阅读(2937) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~