Debes probar primero todas las operaciones para después escoger la mas óptima. Te dejo estos enlaces donde puedes ver como lo resuelven
http://edusagar.com/questions/dynamic-programming/dynamic-programming-minimum-steps-to-1
http://qa.geeksforgeeks.org/5597/reduce-the-given-number-to-1-in-minimum-steps
http://edusagar.com/questions/dynamic-programming/dynamic-programming-minimum-steps-to-1
http://qa.geeksforgeeks.org/5597/reduce-the-given-number-to-1-in-minimum-steps