Jump to content
Fórum Script Brasil
  • 0

Expressão 01 - loop e soma


jamiel
 Share

Question

Faça um programa para calcular a seguinte expressão :

S = 1/1 + 3/2 + 5/3 ... 99/50

<?php

 

//número ímpar - numerador

$num = (2*$i + 1);

//denominador

$den  = ($i + 1);

//S começando com zero

$s = 0;

//soma irá guardar os valores sequenciais

$soma = []; 

for ($i=0; $i <50; $i++) {

     $s = $s + ($num/$den);

     $soma[] = $s;

}

echo array_sum($soma);

 

?>

O resultado tá meio estranho -> soma de todos denominadores e não a soma do resultado de cada divisão

Alguém tem alguma dica?

Agradeço desde já ..

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Olá Jamiel!

Não sei se entendi... mas segue sugestão para solução:

<?php

// o total atual é igual a zero:
$total = 0;
// os números ímpares e o divisor, começam do 1:
$impares = $divisor = 1;
// maior número ímpar da sequência:
$limite = 99;
// variável criada apenas para exibição na tela:
$display = [];
// estrutura que efetuará a repetição, divisão e soma:
for ($impares; $impares <= $limite; $impares+=2) { // o incremento de dois em dois, pegará apenas os números ímpares
    $total+=$impares/$divisor;
    // guarda uma mostra da operação em formato de string
    $display[]=$impares.'/'.$divisor;
    // incremento de $divisor:
    $divisor++;
}
echo implode(' + ', $display).'<br>Total: '.$total;

 

Edited by wash
Link to comment
Share on other sites

  • 0

Deixa ver se entendi :

$impares = $divisor = 1; --> começam com 1 cada...

$total = 0; -->
$impares+=2 --> impares + 2        | incrementa 2 ao anterior 
$divisor++  --> +1                 | incrementa 1 ao anterior
$display[]=$impares.'/'.$divisor;  | armazena como uma array 

Ou seja :
incrementa no geral sempre 2/1 

$divisor++
$total+= $impares / $divisor;
$display[]=$impares.'/'.$divisor; 


1 -                1/1 | 1/1 
2 - $total = 1/1 + 2/1 | 3/2
3 - $total = 3/2 + 2/1 | 5/3
4 - $total = 5/3 + 2/1 | 7/4
e assim por diante ..

Correto? 

Link to comment
Share on other sites

  • 0

Creio que se refere a qualquer número que esteja à esquerda da barra de divisão
nenhum dos números que ficarão à esquerda da barra, será par.

À esquerda da barra(de divisão) só terá números ímpares.

De acordo com o exemplo postado:

S = 1/1 + 3/2 + 5/3 ... 99/50

Edited by wash
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...