Ir para conteúdo
Fórum Script Brasil
  • 0

Expressão 01 - loop e soma


jamiel

Pergunta

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 para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 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;

 

Editado por wash
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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

Editado por wash
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...