No internet connection
  1. Home
  2. Exercícios do Beecrowd

Exercício - 1435 de Vetores e Matrizes

Por alzira eva cavalcanti alves @eva
    2023-10-31 19:56:54.053Z2023-10-31 20:14:22.426Z

    boa tarde pessoal, gostaria de pedir uma ajudinha para entender o enunciado da questão 1435, se alguém puder me explicar com mais clareza, agradeço muito.
    Vi que tem uma pergunta parecida aqui: Beecrowd - 1435 e 1478 ,
    Mas mesmo assim ainda fiquei com dúvida sobre o que é pedido, para conseguir construir meu código.

    • 3 respostas
    1. Julio @Julio
        2023-10-31 20:17:51.438Z2023-10-31 20:25:13.319Z

        Nessa questao tu vai receber uma entrada N , e vai fazer uma matriz quadrada NxN
        Exemplo:
        Entrada = 3
        Matriz =
        1 1 1
        1 2 1
        1 1 1

        Acredito que seu problema deva ser quanto aos espaçamentos, que ele exige de 3 justificados a direita. Nesse post que tu mencionou tem uma função que resolve isso, o padStart.
        Agora quanto aos valores da matriz, tu vai ter que fazer uso de um método da Lib Math , o Math.min(), em que ele vai pegar o valor da linha, i, o valor da coluna, j, e retornar o menor valor entre eles, Math.min(i, j), e somar + 1 ; Que é o menor número da matriz.

        let valorMatriz = Math.min(i, j) + 1
        

        Espero que tenha esclarecido um pouco.

        1. C
          Em resposta aeva:
          Camila Vieira @CamilaVieira
            2023-10-31 20:47:14.463Z

            Estou exatamente nesse exercício, também achei o enunciado bem complicadinho.
            Mas pelo que eu entendi você vai receber várias números, um em cada linha.
            Cada número representa o tamanho da matriz que você tem que criar. Por exemplo, se você receber o número 5, você vai ter que criar uma matriz 5x5, ou seja, 5 linhas e colunas.
            Aí tem uma questão, o modelo da matriz. Os números que você deve colocar em cada linha e cada coluna. As linhas e colunas mais exteriores devem ter o número 1, e indo pro interior esse número deve aumentar.
            Por exemplo: 4

            1 1 1 1
            1 2 2 1
            1 2 2 1
            1 1 1 1
            

            Repare que as linhas e colunas por fora tem o numero 1, e indo pro centro esse número aumenta. Quanto maior o número que você recebe, maior o número de linhas e colunas, e maior o número que vai ficar nas linhas e colunas centrais da matriz.

            Como eu disse, achei bem complicada a questão, também é bem complicado de explicar rsrs mas espero que tenha clareado um pouco pra você.

            1. Em resposta aeva:

              Oi Alzira. Nesses exercícios em que a lógica complica eu sempre faço o "teste de mesa". Consiste em você literalmente escrever no papel alguns casos pra conseguir enxergar o que somente olhando o enunciado não conseguiu ver.
              Por exemplo:

              11111
              12221
              12321
              12221
              11111
              

              Se você reparar, o numero 1 contorna a matriz, dentro dele vem um contorno de numero 2 e no centro o numero 3. Essa matriz é uma 5x5. Então o maior número é o tamanho da matriz dividido por 2. No caso, como 5/2 =2.5, aproximamos para 3. Com matrizes quadradas pares, é só dividir por 2 mesmo. E fazendo o teste de mesa, você consegue enxergar que o numero 1 aparece na primeira linha e na primeira coluna inteiras e também na ultima linha e coluna da matriz. Ja o numero 2 aparece na segunda linha e segunda coluna inteiras e também na penúltima linha e coluna. Fazendo esse processo você consegue descobrir o padrão por trás da matriz. E no teste de mesa é sempre bom fazer com dois ou mais exemplos pra você confirmar o padrão.