Me gustaría empezar con el cálculo 1/s
, que llamaremos a
.
Luego use un bucle for, ya que, si usa recursividad, en C, puede experimentar un desbordamiento de la pila.
Dado que esto es tarea, no daré mucho código, pero, si comienzas con un bucle simple, de 1, entonces sigues aumentando, hasta llegar a 4, entonces puedes ir a n veces.
Dado que siempre va a dividir 1/s
y la división es costosa, simplemente hacerlo una vez ayudará con el rendimiento.
Espero que si lo resuelves, puedas encontrar un patrón que te ayude a optimizar aún más.
Puede encontrar un artículo como este: http://www.b-list.org/weblog/2006/nov/05/programming-tips-learn-optimization-strategies/, para ser útil.
Supongo que, por rendimiento, quiere decir que quiere que sea rápido, independientemente de la memoria utilizada, por cierto.
Puede encontrar que si almacena en caché los valores que calculó, en cada paso, puede reutilizarlos, en lugar de volver a hacer un cálculo costoso.
Personalmente, hago 4-5 pasos a mano, escribiendo las ecuaciones y los resultados de cada paso, y veo si surge algún patrón.
Actualización:
GCC ha añadido la recursión de cola, y nunca he dado cuenta de que, desde que trate de limitar en gran medida la recursividad en C, por hábito. Pero esta respuesta tiene una buena explicación rápida de las diferentes optimizaciones que hizo gcc en función del nivel de optimización.
http://answers.yahoo.com/question/index?qid=20100511111152AAVHx6s
esto no es tarea porque mi escuela está cerrada el pasado julio, ahora estoy sentado en mi casa y solo estoy tratando de resolver algún problema –
Ya que lo más probable es que quiera resolverlo usted mismo, para obtener el mejor efecto de aprendizaje, creo es bueno tratar esta pregunta como si fuera tarea. – Svante