let biggestNo; for (let i = 1; i <= 10000; i++) { const a = prompt("enter a number"); if (!a) { break; } else { biggestNo = Math.max(a); } } console.log(biggestNo);¿Cómo imprimo el segundo número más grande usando este enfoque sin usar funciones y matrices?
Aquí hay una solución con complejidad de tiempo de O(n) :
const array = [31, 25, 43, 19, 8, 42]; let main = -Infinity, sub = -Infinity; for (let num of array) { if(num > main) { sub = main; main = num; } else if(num > sub) { sub = num; } } console.log('biggest: ' + main); console.log('second biggest: ' + sub);Usando la entrada del usuario:
let main = -Infinity, sub = -Infinity; const total = 5; for(let i = 1; i <= total; i++) { const num = +prompt(`Enter a number(${i} of ${total}):`) if(num > main) { sub = main; main = num; } else if(num > sub) { sub = num; } } console.log('biggest: ' + main); console.log('second biggest: ' + sub);¿Podría usar una expresión regular para hacer coincidir todos los números recopilados?
let numbersString; for (let i = 1; i <= 1000; i++) { const a = prompt("enter a number"); if (!a) { break; } else { numbersString += "-" + a } } const numbers = numbersString.match(/\d+/g) const secondLargest = numbers[numbers.length - 2] console.log(secondLargest);