2016-07-13 2 views
0

PHP : 여기 내가 수행해야하는 작업이 있습니다. 아래 코드는 내 코드입니다. 나는 확실히 뭔가를 놓치고있다.for 루프와 어레이를 함께 사용하여 문제가 발생했습니다.

"첫 번째 10 자리 숫자의 제품"다음에 1에서 10까지의 숫자를 곱한 배열을 사용하여 FOR 루프를 작성한다. 힌트가있다 : 0 또는 그렇지 않으면 제품은 0이됩니다!

<?php 
$numbers = 0; 
$numbers = range(1 , 10); 
$arrlength = count($numbers); 
for ($x = 1; $x <= $arrlength; $x++) { 
$numbers[$x] = $numbers + $x; 
} 
echo "The product of first 10 numbers is $numbers.<br>"; 

?> 
+1

두 가지 목적으로 '$ numbers'를 사용하는 것 같습니다. '$ numberSum'과'$ numbers'라는 두 개의 다른 변수가 있어야합니다. –

+1

왜이 질문에서'array'가 사용되는지 혼란 스럽습니다. – cmorrissey

+1

할당 된 것처럼 들립니다. 이 작업에는 배열이 필요하지 않습니다. 배열이 정말로 필요한 경우 합계를 계산하기 위해 배열에'array_sum'을 사용할 수 있습니다. http://php.net/manual/en/function.array-sum.php – chris85

답변

4

본질적으로 당신이하는 일은 제한된 경우에 계승 함수를 만드는 것입니다. 구현시 문제는 $numbers 변수를 제품을 보관할 하나의 변수로, 배열 1-10에 대해 하나씩 사용해야 할 때 다시 사용하는 것처럼 보였습니다. 두 번째 문제는 루프에서 1-10까지 반복하지만 실제로 배열 인덱스 인 0-9에서 루프를 수행하면 배열에서 값을 얻을 수 있습니다.

<?php 
$prod = 1; 
$numbers = range(1 , 10); 
$arrlength = count($numbers); 
for ($x = 0; $x < $arrlength; $x++) { 
    $prod *= $numbers[$x]; 
} 
echo "The product of first 10 numbers is $prod.<br>"; 
?> 

는의 출력은 다음과 같습니다

The product of first 10 numbers is 3628800. 
+0

네가 맞습니다, 그것은 합계가 아닌 제품입니다. 내가 어디에서 왔는지 모르겠다. –

+1

이 코드는 훌륭하게 작동했습니다. –

+0

배열을 건너 뛰고 다음과 같이하면됩니다 : "입니다. ?> 왜 3628800의 0 instrad을 얻고 있습니까? –

0

것은이 코드를 테스트하지 않았습니다주의,하지만 난 그것을 작동합니다 확신하시기 바랍니다.

<?php 
    $numbers = range(1, 10); 
    $product = 1; 

    for ($i = 0; $i < count($numbers); $i++) { 
    $product *= $numbers[$i]; 
    } 

    echo 'The product of the first 10 numbers is ' . $product . '<br />'; 
?> 
+0

방금 ​​제품이 합산되기를 원하지 않는 것으로 나타났습니다./방금 고쳤습니다. – Dendromaniac

관련 문제