Olá,
Gostaria de ajuda para saber como exatamente devo fazer o retorno da solução.
Ja tenho mais de 20 envios e sempre me da erro de 'Presentation error ', já procurei diversas soluções para tratar a saida e sempre da errado. Vi que existe uma solução para C#, no entanto não encontrei nada sobe JavaScript.
Nao sei se meus colegas estão tendo o mesmo problema, mas esse exercício ja me tomou tempo de mais só por causa da saida, sendo que a solução dos dois eu ja tenho, na minha maquina executando pelo .Node tudo funciona normalmente.
Agradeço a ajuda.
Matriz Quadrada I
https://www.beecrowd.com.br/judge/pt/problems/view/1435
Matriz Quadrada II
https://www.beecrowd.com.br/judge/pt/problems/view/1478
Linked from:
- BBrenda Aniceto Bueno @Brenda
Boa note, assim como você eu tinha feito de varias formas pelo VS e funcionou mas pelo beecrowd sempre deva o mesmo erro que o seu.
Este código JavaScript resolve o problema 1435 Matriz Quadrada I no formato que o beecrowd aceita:Ele lê uma série de números, onde cada número N representa a ordem de uma matriz. Para cada N lido, o código gera uma matriz N x N seguindo as regras fornecidas no problema.
O processo funciona da seguinte forma:
O código lê a entrada do usuário, inicializa uma variável contador com o primeiro número da entrada e entra em um loop. Enquanto contador não for zero, o código executa as seguintes etapas:
Para cada valor de i de 0 até metade de contador, o código constrói uma linha da matriz.
Para cada valor de j de 0 até metade de contador, o código calcula um valor baseado na menor diferença entre i e j e adiciona 1. Esse valor representa os elementos da matriz.
Os valores são formatados para terem dois caracteres, com um espaço à esquerda, se necessário.
A linha da matriz é construída espelhando os valores da metade esquerda para a metade direita.
A matriz completa é impressa no formato desejado, onde cada linha representa uma linha da matriz.
Esse processo é repetido até que contador seja zero, momento em que o loop é encerrado.Espero que isso ajude a entender como o código está resolvendo o problema da matriz quadrada! Se tiver mais alguma dúvida ou precisar de ajuda adicional, estou à disposição.
var input = require('fs').readFileSync('/dev/stdin', 'utf8'); var lines = input.split('\n'); let contador = parseInt(lines.shift()); let vetor = []; let matriz = []; while (contador !== 0) { matriz = new Array(contador); for (let i = 0; i < contador / 2; i++) { vetor = new Array(contador); for (let j = 0; j < contador / 2; j++) { const value = Math.min(i, j) + 1; vetor[j] = value < 10 ? ` ${value}` : `${value}`; vetor[contador - 1 - j] = vetor[j]; } matriz[i] = ` ${vetor.join(' ')}`; matriz[contador - 1 - i] = matriz[i]; } console.log(`${matriz.join('\n')}`); contador = parseInt(lines.shift()); console.log(''); }
Julio @JulioMuito obrigado pela ajuda. Já estava entrando em desespero aqui.
- Em resposta aBrenda⬆:MMarina Barbosa @marina_barbosa
obg, tava sofrendo aqui por conta de espaços
- Em resposta aBrenda⬆:
Hilton Rodrigo Mota @hrodrigomotaMuito obrigado pela explicação, Brenda. Ajudou bastante!
- BEm resposta aJulio⬆:Brenda Aniceto Bueno @Brenda
A 1478 ficou desse jeito:
var input = require('fs').readFileSync('/dev/stdin', 'utf8'); var lines = input.split('\n'); while(true){ var N =parseInt(lines.shift()); if(N === 0){ break; } var matriz = []; for(var i =0; i< N;i++){ matriz.push([]); for(var j = 0; j < N; j++){ matriz[i].push(Math.abs(i - j) + 1); } } for(var i = 0; i < N; i++){ var row = ''; for(var j =0; j <N; j++){ row += matriz[i][j].toString().padStart(3, ' '); if(j < N -1){ row += ' '; } } console.log(row); } console.log(''); }
Matheus Panobianco @matheus_panobiancoNossa, valeu demais! Eu tinha feito bem parecido com o seu, mas estava adicionando os espaços "manualmente", sem esse padStart não estava indo de maneira alguma. Muito obrigado!
Em resposta aJulio⬆:Marcele Eller Gusmão Moura @marceleellerSalvou aqui... Fiquei a tarde inteira quebrando cabeça e dava Presentation Error, no VS code rodava tranquilo. =(
- BBrenda Aniceto Bueno @Brenda
Isso aconteceu comigo também, por conta de um espaço 😓. O ruim do beecrowd é que ele da um erro genérico e fica difícil de indentificar.
- MEm resposta aJulio⬆:Matheus Bigatão Martinelli @matheusbigatao
Na 1478 eu tive problema com o tempo de execução, então ficou desse jeito:
var input = require('fs').readFileSync('/dev/stdin', 'utf8'); var lines = input.split('\n'); let N; let valor; let stringLinha = ''; while (true){ N = parseInt(lines.shift()); if (N ===0){ break; } for(let i=0; i<N; i++){ stringLinha = ''; for(let j=0; j<N; j++){ valor = Math.abs(i - j) + 1; stringLinha += valor.toString().padStart(3, ' '); if(j < N -1){ stringLinha += ' '; } } console.log(stringLinha); } console.log(''); }
Em resposta aJulio⬆:Pedro Augusto de Souza Brandes @pedrobrandesEstou a horas nessas questões kkk
Muito obrigado!