"PHP nCr()"의 두 판 사이의 차이

2번째 줄: 2번째 줄:
;PHP nCr()
;PHP nCr()


<source lang='php'>
<source lang='php' run>
<?php
function nCr($n, $r) {
function nCr($n, $r) {
     if( $r > $n ) return -1;
     if( $r > $n ) return -1;
13번째 줄: 12번째 줄:
     return $res;
     return $res;
}
}
echo nCr(1,2) . PHP_EOL;
echo nCr(1,2) . PHP_EOL; # -1
# -1
echo nCr(2,2) . PHP_EOL; # 1
echo nCr(2,2) . PHP_EOL;
echo nCr(3,2) . PHP_EOL; # 3
echo nCr(3,2) . PHP_EOL;
echo nCr(4,2) . PHP_EOL; # 6
echo nCr(4,2) . PHP_EOL;
echo nCr(5,2) . PHP_EOL; # 10
echo nCr(5,2) . PHP_EOL;
echo nCr(1000,5) . PHP_EOL; # 8250291250200
echo nCr(1000,5) . PHP_EOL;
# 1
# 3
# 6
# 10
# 8250291250200
</source>
</source>
<source lang='php'>
<source lang='php' run>
<?php
function nCr($n, $r) {
function nCr($n, $r) {
     if( $r > $n ) return -1;
     if( $r > $n ) return -1;
34번째 줄: 26번째 줄:
     return nCr($n-1,$r)+nCr($n-1,$r-1);
     return nCr($n-1,$r)+nCr($n-1,$r-1);
}
}
echo nCr(1,2) . PHP_EOL;
echo nCr(1,2) . PHP_EOL; # -1
# -1
echo nCr(2,2) . PHP_EOL; # 1
echo nCr(2,2) . PHP_EOL;
echo nCr(3,2) . PHP_EOL; # 3
echo nCr(3,2) . PHP_EOL;
echo nCr(4,2) . PHP_EOL; # 6
echo nCr(4,2) . PHP_EOL;
echo nCr(5,2) . PHP_EOL; # 10
echo nCr(5,2) . PHP_EOL;
echo nCr(52,5) . PHP_EOL; # 2598960
echo nCr(52,5) . PHP_EOL;
# 1
# 3
# 6
# 10
# 2598960
</source>
</source>



2020년 6월 3일 (수) 15:24 판

1 개요

PHP nCr()
function nCr($n, $r) {
    if( $r > $n ) return -1;
    if( $r == 0 ) return 1;
    if( $n == $r ) return 1;
    if( $n-$r<$r ) $r=$n-$r;
    $res = 1;
    for($i=1; $i<=$r; $i++) $res*=($n-$i+1)/$i;
    return $res;
}
echo nCr(1,2) . PHP_EOL; # -1
echo nCr(2,2) . PHP_EOL; # 1
echo nCr(3,2) . PHP_EOL; # 3
echo nCr(4,2) . PHP_EOL; # 6
echo nCr(5,2) . PHP_EOL; # 10
echo nCr(1000,5) . PHP_EOL; # 8250291250200
function nCr($n, $r) {
    if( $r > $n ) return -1;
    if( $r == 0 ) return 1;
    if( $n == $r ) return 1;
    return nCr($n-1,$r)+nCr($n-1,$r-1);
}
echo nCr(1,2) . PHP_EOL; # -1
echo nCr(2,2) . PHP_EOL; # 1
echo nCr(3,2) . PHP_EOL; # 3
echo nCr(4,2) . PHP_EOL; # 6
echo nCr(5,2) . PHP_EOL; # 10
echo nCr(52,5) . PHP_EOL; # 2598960

2 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}