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.