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

잔글 (봇: 자동으로 텍스트 교체 (-source +syntaxhighlight))
2번째 줄: 2번째 줄:
;PHP nCr()
;PHP nCr()


<source lang='php' run>
<syntaxhighlight lang='php' run>
function nCr($n, $r) {
function nCr($n, $r) {
     if( $r > $n ) return -1;
     if( $r > $n ) return -1;
18번째 줄: 18번째 줄:
echo nCr(5,2) . PHP_EOL; # 10
echo nCr(5,2) . PHP_EOL; # 10
echo nCr(1000,5) . PHP_EOL; # 8250291250200
echo nCr(1000,5) . PHP_EOL; # 8250291250200
</source>
</syntaxhighlight>
<source lang='php' run>
<syntaxhighlight lang='php' run>
function nCr($n, $r) {
function nCr($n, $r) {
     if( $r > $n ) return -1;
     if( $r > $n ) return -1;
32번째 줄: 32번째 줄:
echo nCr(5,2) . PHP_EOL; # 10
echo nCr(5,2) . PHP_EOL; # 10
echo nCr(52,5) . PHP_EOL; # 2598960
echo nCr(52,5) . PHP_EOL; # 2598960
</source>
</syntaxhighlight>


==같이 보기==
==같이 보기==

2020년 11월 2일 (월) 02:35 판

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 }}