Практика алгоритмизации 1

Задача №8 из этого списка

Условие: Дано целое число N (> 0). Найти произведение 1.1×1.2×1.3×... ( N сомножителей).

<?php
$N = 3;

function getComposition($number){
    $result = 1.1;
    for($i=2; $i<=$number; $i++){
        $result *= "1" . ".$i";     
    }
    return $result;
}

echo getComposition($N);
?>

Key Words for FKN + antitotal forum (CS VSU):

vedro-compota's picture

а что если не использовать строки вообще? Решать исключительно в числах? (функций потребуется больше)

_____________
матфак вгу и остальная классика =)

Voronve's picture

<?php
$N = 3;
 
function getComposition($number){
    $Composition = $ComposeIterNumber = 1.1;
    for($i=1; $i<$number; $i++){
         $ComposeIterNumber += 0.1;
         $Composition *= $ComposeIterNumber;
    }
    return $Composition;
}
 
echo getComposition($N);
?>
melisa's picture

  1. почему бы не использовать в качестве $ComposeIterNumber $i?
    $n = 4;
        
    function getComposition($number)
    {
       $composition = 1.1;
       
       for ($i=2; $i<=$number; $i++) {
           $composition *= 1 + $i/10;
       }
        
       return $composition;
    }
    
    echo getComposition($n);
  2. $Composition

    Честно говоря, впервые встречаю использование camelCase с большой буквы, обычно все пишут с маленькой. Удовлетворите любопытство: были какие-то причины или просто душа поэта не терпит рамок?)

melisa's picture

$i не используется в теле цикла, значит, можно его не вводить:

while ($number>1){
     $ComposeIterNumber += 0.1;
     $Composition *= $ComposeIterNumber;
     $number--;
}