Tengo el siguiente enfoque para resolver estas preguntas.
- Intente resolver casos de prueba pequeños, digamos n = 2, 3, etc. en papel.
- Lo más probable es que exista una relación de recurrencia entre say [math] n = 3 [/ math] y [math] n = 2 [/ math]. Después de todo, todo lo que necesita hacer es resolver la ecuación de recurrencia.
Como ejemplo vamos a la pregunta codechef
Permite establecer flag = true en caso de que Jenny gane.
Ahora sabemos [matemáticas] f (1) = verdadero. [/ Matemáticas]
- ¿Cómo consigue un trabajo un graduado de IIT no informático en Google, Facebook o Amazon?
- ¿Hay alguna diferencia entre https en la URL y algo escrito en un cuadro verde?
- ¿Un servidor simple con un servidor MS SQL siempre vencerá a uno virtual?
- ¿Qué libros de texto básicos deberían tener todos los ingenieros de aprendizaje automático y aprendizaje profundo en su estantería?
- ¿Por qué no hay soluciones para los problemas NP-Hard?
Del mismo modo, sabemos la respuesta para [matemáticas] N = 2, 3, 4, 5. [/ matemáticas]
Ahora consideremos una N general, sabemos
[matemáticas] F (N) =! (F (N – 1), F (N – 3), F (N – 5)) [/ matemáticas]
esto es porque tendremos que tomar el hecho
el último paso fue 1 o 3 o 5 y verifique quién es el ganador en ese caso y si el ganador es otro hombre en alguno de ellos, entonces está ganando por la fuerza. porque entonces estás negando la respuesta.
De lo contrario, otro tipo es el ganador.
Ahora, todo lo que necesita hacer es resolverlo y, mediante un golpe y una prueba, observará que
[matemáticas] F (N) = verdadero, [/ matemáticas] n% 2 == 1
[matemáticas] = falso, [/ matemáticas] n% 2 == 0
Editar: Hay algunas preguntas sobre HackerRank. Te recomendaría que los practiques.
PD -> Es un enfoque general para resolver estas preguntas, sin embargo, uno puede ver fácilmente el patrón después de un poco de práctica e incluso yo habría escrito el mismo código que escribió Aahan Bhatt sin siquiera formar una relación de recurrencia.