cálculo de número máximo

cálculo de número máximo

Home › Fóruns › JavaScript › cálculo de número máximo

Marcado: 

Visualizando 13 respostas da discussão
  • Autor
    Posts
    • #62846

      como faço o cálculo de todos os números que compõe até chegar a ele? O número é o 3 : (1 + 2 + 3 = 6)

    • #62894
      IcaroFilho
      Moderador

      Uma maneira simples e rápida (não que seja a certa) é através do laço de repetição.
      vc cria uma variável acumuladora com valor 0. -> Ex.: soma

      cria uma variável para o usuário dar a entrada do numero -> Ex.: num

      cria um laço que com a condição de que seja verdadeiro enquanto num >= 0 e dentro do bloco ponha num -1 (que ele fara uma contagem regressiva, além de servir como o próprio contador) e a variável soma irá receber ela mesma e num.

      fora do laço mande exibir a variável soma, que será o que deseja.
      Espero ter ajudado

    • #62895
      IcaroFilho
      Moderador

      só uma correção
      num = num -1 ou num -= 1

    • #63056
      Luiz Eduardo Araujo
      Participante

      Cara quebrei cabeça aqui pra fazer kkk, mas acho que deu certo:

      function sum(num){

      var sumI = 0
      var total = 0

      for (var i = 0; i < num; i++){
      sumI += i
      total = num + sumI
      }

      return total
      }

      console.log(sum(10))

    • #63057
      IcaroFilho
      Moderador

      vc testou e deu certo ?

      não sou nenhum especialista em JS (muito tempo q n uso) mas observe os pontos q vou mencionar q serve ate para mim como duvida.

      1- for (var i = 0; i < num; i++){
      Neste caso o num seria o numero inserido, correto ?
      caso seja, ele nao será lido pois o programa correrá até 1 numero antes do num (se for 10, irá até 9)
      no caso, se vc quer digitar por exemplo 4 e deseja o resultado 10
      vc tem q usar “<=” -> for (var i = 0; i <= 4; i++ ){

      2- suml += i
      este é o seu acumulador, ele te dará o resultado.
      Não compreendi pq da variável total
      total = num + sumI
      pq seu ultimo loop será a soma do acumulador + o numero que vc digitou.
      Ex¹.: se vc digitar 4
      a soma 1 + 2 + 3 + 4 = 10, logo:
      sum = 10
      total = 14
      Ex².: se digitar 10
      sum = 55
      total = 65

      OBS: n posso dizer q esta errado pois não sei exatamente o que planeja com aquele total.
      na explicação que lhe dei eu usei um while com contador regressivo.
      mas vc também fez verto usando for …
      como vc vai ver… há diversas maneiras de se chegar a um objetivo.

    • #63058
      Luiz Eduardo Araujo
      Participante

      Não entendi muito bem a dúvida mas vou tentar explicar a lógica:

      a função é justamente pra receber o Num que será o valor passado no console.log(NomeDaFunção(NUM)), exemplo se eu fizer um console.log(sum(5)), ele fará o seguinte:

      Minha posição que foi declarada como a variável I será percorrida até o valor 4 (< num). Todo o valor adquirido através desse contador ele somará no sumI, ou seja, 1+2+3+4 logo terá o valor 10 na variável sumI.

      Após isso juntamos os valores na variável total que será = 5 (num) + 10 (sumI).

      No final da função é dado o retorno do total que será igual 15.
      —————————————————————————-

      Também consegui chegar a solução dessa forma:

      function sum(number){
      var total = 0

      for(var i = 1; i <= number; i++){
      total += i;
      }
      return total;
      }
      console.log(sum(5))

    • #63059
      Luiz Eduardo Araujo
      Participante

      sobre o <=, seria necessário apenas se o contador inicializasse a partir do número 1, já se inicializarmos do número 0 não tem problemas utilizarmos apenas o <

    • #63060
      Luiz Eduardo Araujo
      Participante

      Já se por acaso nós começarmos com o 0 no contador e passar o parâmetro do for de i <= num ai poderíamos realmente fazer da forma que você falou que ficaria assim:

      function sum(num){

      var total = 0

      for (var i = 0; i <= num; i++){
      total += i
      }
      return total
      }

      console.log(sum(5))

    • #63061
      IcaroFilho
      Moderador

      show, agora entendi o que vc fez =)
      como eu fiz direto pelo jeito que postou no ultimo código, eu acabei ficando sem entender o seu código inicial.
      e realmente a questão do “<=” não se encaixaria no seu quadro e por isso vc tinha feito com “<”
      Obrigado pela explicação !

    • #63062
      Luiz Eduardo Araujo
      Participante

      Na real, pelo teste que fiz aqui no vscode, esse último e penúltimo que mandei tanto faz inicializar por 0 ou por 1 até porque se inicializar por 0 ele vai fazer total = total + i, e nesse caso ambos são zero então daria na mesma uheuehhue

    • #63063
      Luiz Eduardo Araujo
      Participante

      No meu caso só não se encaixou por que a partir do laço com a posição 0 ele já usaria o valor passado no NUM pro total… por exemplo:

      var sumI = 0
      var total = 0

      for (var i = 0; i <= num; i++){
      sumI += i
      total = num + sumI
      }

      Vamos supor que eu passe o valor 2 pro num, ele faria o seguinte:

      0 é menor ou igual a 2? Sim, então sumI = 0 + 0, total = 2 + 0.
      1 é menor ou igual a 2? Sim, então sumI = 0 + 1, total = 2 + 1.
      2 é menor ou igual a 2? Sim, então sumI = 1 + 2, total = 2 + 3.

      Sendo assim mesmo percorrendo a posição 0 ele adicionou o valor de Num no total, o que não acontece na outra função:

      var total = 0

      for (var i = 0; i <= num; i++){
      total += i
      }

      Supondo de novo o valor 2 para o num:

      0 é menor ou igual a 2? Sim, então total = 0 + 0, total = 0.
      1 é menor ou igual a 2? Sim, então total = 0 + 1, total = 1.
      2 é menor ou igual a 2? Sim, então total = 1 + 2, total = 3.

      —————————————————————————————–

      Conclusão: Na função de cima ele só daria errado se eu usasse o <= começando pela posição 0 porque ele já sai desse ponto de partida com o valor de num adicionado no total. É mais ou menos isso ashusahu

    • #63064
      IcaroFilho
      Moderador

      sim, Eu só mencionei o “<=” pq eu estava simplificando utilizando apenas o acumulador dentro do laço.

    • #63066
      Luiz Eduardo Araujo
      Participante

      Simm show demais, eu apanhei pra fazer e consegui entender o que rolou por trás graças a pergunta porque fiquei testando e pesquisando ehueuhe, obrigado mano <3

    • #63142
      Tutora Mayla
      Mestre

      Heitor, os alunos Luiz e Icaro tiveram uma boa discussão aqui e conseguiram chegar em numa resposta muito boa para o seu problema. Se ainda houver alguma dúvida volte a entrar em contato para que possamos te ajudar.

Visualizando 13 respostas da discussão
  • Você deve fazer login para responder a este tópico.