Más sencillo: La posición (f,c) es igual a (((c*(valor-1) + f) % valor)+1)
Pero vamos la idea no es darselo hecho por que la sintaxis de un lenguaje de programación se aprende fácil. Aprender a programar no es saber la sintaxis de uno o muchos lenguajes, es aprender a expresarse de forma que un ordenador te entienda. Y eso no se aprende copiando programas ya hechos.
S!
Edit: Aclarar que no es que me parezca mal que pongas la solución, pero así el aprende menos.