No internet connection
  1. Home
  2. JavaScript

1189 area esquerda

Por Alexandre Jorge de Paiva @alexandrePaiva
    2023-10-31 23:29:42.726Z

    Fala pessoal! Blz?

    Onde estou errando aqui? Consegui fazer as acima e abaixo, mas essas dos lados, empaquei...

    var operacao = lines.shift()
    var posicao = []
    var valor = 0
    var m = 1

    for(let i = 0; i < 12; i++){
    valor = i*12
    if(i <= 5){
    for(var j = 0; j < 12; j++){
    posicao.push(valor + j)
    }
    } else {
    for(var j = 0; j < 12 - i + m; j++){
    posicao.push(valor + j)
    }
    m++
    }
    }

    var soma = 0
    var elementos = 0

    for(let i = 0; i < 144; i++){
    var num = parseFloat(lines.shift())
    if(posicao.indexOf(i) != -1){
    soma += num
    elementos++
    }
    }

    if(operacao === 'S'){
    console.log(soma.toFixed(1))
    } else {
    const media = soma / elementos
    console.log(media.toFixed(1))
    }

    Obrigado desde já!

    • 3 respostas
    1. C
      Camila Vieira @CamilaVieira
        2023-10-31 23:37:22.032Z

        Oi, Alexandre. Primeiro, você não declarou a variável posição... E outra coisa, você tem que observar que em cada linha o número de colunas contadas muda, então da forma que você fez, com o j indo até < 12 não vai dar certo.

        1. C
          Em resposta aalexandrePaiva:
          Camila Vieira @CamilaVieira
            2023-11-01 03:55:03.674Z

            Oi, Alexandre. Não sei se entendi bem seu código, mas vou tentar te ajudar.

            No primeiro "for" você está preenchendo a matriz? A matriz tem que ser preenchida com os números de entrada, que o próprio beecrowd fornece. Cada linha é um valor.

            Seu segundo "for" acredito que esteja fazendo a soma das posições desejadas. No entanto, como mostra a figura do exercício, as linhas contadas devem ser apenas as em verde e as colunas também. São contadas as linhas de 1 a 10, e as colunas contadas mudam a cada linha (na primeira linha apenas uma coluna, na segunda linha duas colunas, etc.). Sendo assim, penso que um loop que executa 144 vezes não é adequado.

            Você teria que fazer um loop para linhas e um loop pra colunas, fazendo a soma apenas das posições ([linha][coluna]) em verde. Perceba que das linhas 1 a 5 o número de colunas vai aumentando, e das linhas 6 a 10 as linhas vão diminuindo.

            Espero que tenha esclarecido um pouco, qualquer coisa só responder aqui 😊

            1. Em resposta aalexandrePaiva:
              Christian Amsberg Janner @calemao
                2023-11-01 22:46:52.723Z

                O seu código parece estar incompleto, pois não inclui a declaração ou inicialização das variáveis lines e operacao, que são essenciais para o funcionamento do programa. Certifique-se de definir a variável lines com os valores de entrada e a variável operacao com 'S' para soma ou 'M' para média, conforme a operação desejada, antes de executar o código.