Diagrama de flujo del problema del mono comiendo melocotón
El diagrama de flujo del problema del mono comiendo melocotón es el siguiente:
Primero analice el problema: utilice el pensamiento inverso para pensar en ello y de acuerdo con el significado de la pregunta "De "De ahora en adelante, come la mitad y uno de las sobras del día anterior cada mañana", entonces podemos usar el pensamiento inverso para deducirlo, es decir, avanzar a partir del décimo día.
Se sabe que hay uno en el décimo día. Según el significado de la pregunta, el noveno día debería ser (1+1)*2=4, y el octavo día debería ser (4). +1)*2=10. El séptimo día debería ser (11)*2=22, el sexto día debería ser (22+1)*2=46, y así sucesivamente, hasta que el primer día debería ser el segundo. día (766+1)*=1534 melocotones, es decir, el mono recogió 1534 melocotones el primer día.
Para comprobar la exactitud de esta derivación, se puede deducir según la lógica normal (es decir, de adelante hacia atrás en este momento), es decir, de 1534 melocotones el primer día, 1534 /2- el segundo día 1=766 melocotones, y así hasta el décimo día, entonces el mono encontrará que solo queda uno.
En este punto, hemos derivado la idea y luego hemos escrito el código. Es muy sencillo. Solo hay dos formas de implementarlo, una es un bucle for simple y la otra es. recursivo.
Utilizo la recursividad aquí, porque al resolver este tipo de problemas, a menudo usamos la recursividad para pensar en ello, lo que simplificará el problema. Según el pensamiento matemático, se trata de encontrar el número desconocido, y la solución puede basarse en los números conocidos (entonces los números conocidos aquí ya nos han dicho que solo hay un melocotón el décimo día).
Información ampliada:
El algoritmo recursivo en informática se refiere a un método de resolución de problemas descomponiendo repetidamente el problema en subproblemas similares. Los métodos recursivos se pueden utilizar para resolver muchos problemas informáticos, por lo que es un concepto muy importante en informática.
La mayoría de los lenguajes de programación admiten la autollamada de funciones. En estos lenguajes, las funciones pueden realizar recursividad llamándose a sí mismas. La teoría computacional puede demostrar que la recursividad puede reemplazar completamente los bucles, por lo que es habitual utilizar la recursividad para implementar bucles en muchos lenguajes de programación funcionales.