Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

222
Vistas
implementar una función javascript siguiendo ciertas reglas

🙋‍♂️ Tengo una evaluación en javascript aquí está:

Meta:

En la cultura china, es común durante las celebraciones dar "sobres rojos" que contienen un poco de dinero. Muy a menudo, las generaciones adultas dan a las generaciones más jóvenes. Desea crear una aplicación de WeChat para ayudar a los abuelos a compartir su presupuesto de donación entre sus nietos.

Escribir un programa que calcule el número de "regalos de la suerte" (igual a 8) según el presupuesto de dinero y el número de nietos regalados

Marcha:

Muchas reglas, mezclando tradición y superstición, enmarcan este regalo:

Las donaciones no deben contener la cantidad 4, como suena a "muerto" es favorable donar una cantidad de 8, como suena a "fortuna" sería desaprobado no darle nada a uno de los nietos su algoritmo debe devolver el número de donaciones igual a 8 respetando las siguientes reglas:

Gastar todo el presupuesto (a menos que haya suficiente presupuesto para dar 8 a todos) No dar 4 (por tradición, el presupuesto nunca será 4) No dar 0 (a menos que el presupuesto no sea suficiente) Otorgar un máximo de 8 una vez que se cumplan las reglas anteriores implementación respetada:

implementar la función luckyMoney(dinero,regalados) que:

tome como entradas los números enteros dinero y regalos con:

0 <=dinero< 100

0 <= regalados <10

y devuelve el número de donaciones igual a 8 como un número entero

 function luckyMoney(money,giftees) { //write your code here // to debug : console.error('Debug messages..."); return -1; }

Así que seguí adelante e implementé la función de la siguiente manera:

 function luckyMoney(money,giftees){ if (money % 8 ===0){ return (money/8) }else if(money%4===0){ return 0} }

creo que mi codigo esta mal

¿Qué opinas, por favor?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Una solución recursiva podría ser la más fácil.

 function luckyMoney(money, giftees) { if (money === 4) { throw new Error("You cannot give 4"); } if (money >= giftees * 8) { // There is enough to give everyone 8 return giftees; } if (money < 8 + giftees - 1 || money === 12) { // There is not enough to give anyone 8, or giving someone 8 would mean the next person gets 4 (unlucky) or someone will get 0 (not allowed) return 0; } // Otherwise, the number of eights must be one greater than if we gave (money - 8) to (giftees - 1) return 1 + luckyMoney(money - 8, giftees - 1); } const testCases = [[8, 1, 1], [8, 2, 0], [12, 2, 0], [13, 2, 1], [13, 3, 1], [16, 2, 2], [100, 10, 10], [100, 13, 11]]; for (const [money, giftees, expectedResult] of testCases) { result = luckyMoney(money, giftees); console.log(money, giftees, expectedResult, result); }

Alternativamente, aquí hay una versión no recursiva con un bucle. Puede haber una solución matemática pura sin bucles que sería más simple, pero no estoy seguro de cuál sería.

 function luckyMoney(money, giftees) { if (money >= giftees * 8) { return giftees; } let r = 0; while (money >= 8 + giftees - r && money !== 12) { r++; money -= 8; } return r; }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda