2017-06-07 5 views
-1

私はPHPを探求するために、それを少し学ぶしようとしていますが、私はこの合計40のようですが、どのように

$n=2; 
    $a=5; 
    $x=3; 
    $s=0; 
    $i; 
    for($i=1; $i<=($n+2);$i++) 
    $s=$s+(2*$i+$a); 

    //$g=3*$x+4*$s; 
    echo "$s"; 

をしようとしたときに結果が40であると思われる、と私は自分でそれを計算するときsの合計は13 です。これは簡単ですが、わかりません。

+1

どうやって13を取得していますか?第1回の繰り返し: '7 = 0+(2 * 1 + 5)'、第2: '16 = 7+(2 * 2 + 5)'、第3: '27 = 16+(2 * 3 + 5) '、4番目:' 40 = 27+(2 * 4 + 5) 'となります。 – aynber

+0

OK = 0 +(2 * 4 + 5)= 0+(8 + 5)= 0 + 13 = 13 – sNr

+0

これはコード化したものではありません。コードを再考することができます。 – aynber

答えて

0

を持って、PHPコードは、それがないように見えるまさにありません。何か不足していますか?

ループ1:

$i = 1 
    $s = 0 + (2*1 + 5) = 7 

ループ2:

$i = 2 
    $s = 7 + (2*2 + 5) = 7 + 4 + 5 = 16 

ループ3:

$i = 3 
    $s = 16 + (2*3 + 5) = 16 + 6 + 5 = 27 

ループ4:

$i = 4 
    $s = 27 + (2*4 + 5) = 27 + 8 + 5 = 40 
0

N = 2; A = 5; X = 3; S = 0;擬似コードの使用

for 
    I=1 => S (0) = 0 + (2*1+5) = 7 

    I=2 => S (7) = 7 + (2*2+5) = 16 

    I=3 => S (16) = 16 + (2*3+5) = 27 

    I=4 => S (27) = 27 (2*4+5) = 40 
0

n = 2 
a = 5 
s = 0 

for (i in { 1...4 }) { 

    s = s + ((2 * i) + 5) 
} 

をだから我々は、これは簡単な数学である

s = 0 + ((2 * 1) + 5) = 0 + 7 = 7 
s = 7 + ((2 * 2) + 5) = 7 + 9 = 16 
s = 16 + ((2 * 3) + 5) = 16 + 11 = 27 
s = 27 + ((2 * 4) + 5) = 27 + 13 = 40 
+0

hmmm、私はSが4に等しいので毎回値を取得しています。私は正しいのですか? – sNr

+0

あなたが意味すると思うのは、 – inarilo

+0

からではなく、4つのループのそれぞれについて、1から4まで数えます。以前の値を使用して、Sの値を再割り当てするたびに –

1

その非常に単純な、以来、私< =($ N + 2)総反復は、最初の反復のため4. 、

$i=1 the value of s = 0+(2*1+5) = 7 
$i=2 now s = 7+(2*2+5) = 16 
$i=3 now s = 16+(2*3+5) = 27 
$i=4 now s = 27+(2*4+5) = 40 

希望、これは説明になります。

0

これは簡単な数学です。 sは2i + aの1からn + 2までのiの合計です。これは、iとaの合計を2倍したものに等しい。後者は明らかに(n + 2)aの価値がある。前者は、1からn + 2の整数の2倍、すなわち2 *(n + 2)(n + 3)/ 2である。したがって、合計は、(n + 2)(n + 3)+(n + 2)a =(n + 2)(n + 3 + a)= * 10 = 40.(副作用:明示的なループは必要ありません。上記の式を実装するだけです)

関連する問題