Tabla de contenido
7-18 El estado de ánimo del Big Ben
Titulo original:
Algunos internautas preguntaron: ¿Habrá más preguntas sobre el Big Ben en el futuro? Ben Zhong respondió: Depende de tu estado de ánimo...
Esta pregunta le pide que escriba un programa para que el Big Ben genere respuestas automáticamente según su estado de ánimo.
Formato de entrada:
La entrada proporciona 24 números enteros en el rango [0, 100] en una línea, que a su vez representan el índice de humor del Big Ben para cada hora de las 24 horas del día.
Luego hay varias líneas, cada línea proporciona un número entero entre [0, 23], que representa el momento en que los internautas le hicieron esta pregunta a Ben Chong. Cuando ocurre un momento ilegal, significa que la entrada ha terminado y no es necesario procesar esta entrada ilegal. Se garantiza que la pregunta se hará al menos una vez.
Formato de salida:
Para cada pregunta, si el índice de estado de ánimo de Ben Chong es superior a 50, envíelo en una línea 心情指数 Yes
; de lo contrario, envíelo 心情指数 No
.
.
Ideas para resolver problemas:
- Importe
readline
el módulo y cree un objeto de interfaz: primeroreadline
introduzca el módulo y usecreateInterface
métodos para crear un objeto de interfazrl
. Este objeto establece el flujo de entrada en entrada estándar. - Leer entrada y almacenar: al escuchar
'line'
eventos, la entrada se almacena en una matrizbuf
. - Analice la entrada y procese la secuencia de números: asigne
buf
el primer elemento de la matriz a una variabletimes
, sepárelo en una matriz de cadenas separadas por espacios y utilicemap
métodos para convertir cada cadena en un número. Convierta las subcadenasbuf
a partir del segundo elemento (es decir, la posición con índice 1) hasta el último elemento (incluido el último elemento) de la matriz en números y asígnelos a variablesarr
. Utilicefilter
el método para filtrar los números que no cumplen con los criterios (menos de 0 o más de 23) y luego almacene los números restantes en formatoarr
. - Genere el resultado según sea necesario: itere a través de
arr
cada número en la matriz, accedatimes
a la matriz como un índice y genere si el valor correspondiente al número es mayor que 50; de lo contrario,times[i] + " Yes"
generetimes[i] + " No"
. - Resultado de salida: genera la cadena de resultado procesada.
.
Código JavaScript (nodo):
const r = require("readline");
const rl = r.createInterface({
input: process.stdin
});
let buf = [];
rl.on('line', (input) => buf.push(input));
rl.on('close', () => {
const times = buf[0].split(" ").map(Number);
const arr = buf.splice(1).map(Number).filter(i => 0 <= i && i <= 23);
if (arr.length < 1) {
return;
}
arr.forEach(i => console.log(`${
times[i] > 50 ? times[i] + ` Yes` : times[i] + ` No`}`));
});
.