Exacto.
En el bucle for, la variable num no cambia nunca de valor, es la variable i la que se va modificando en cada iteración y por tanto la que usaremos para el cálculo del factorial.
Dos correciones.
la primera, sin importancia, en esta línea, no es necesario multiplicar la i * 1:
factorial = factorial + (i*1);
Si lo piensas, multiplicar por 1 nunca sirve para nada.
5 multiplicado por 1, sigue siendo 5.
15 multiplicado por 1, sigue siendo 15.
543 multiplicado por 1, sigue siendo 543.
7236476274627 multiplicado por 1, sigue siendo 7236476274627
En conclusión,
i multiplicado por 1, sigue siendo i
Así que con esto es suficiente:
factorial = factorial + i;
LA segunda, importante:
Ahora mismo
no estás consiguiendo obtener el factorialMira, por ejemplo, el factorial de 5, sería:
5 * 4 * 3 * 2 * 1 =
120Sin embargo, con tu código obtenemos como resultado
15Porque estás haciendo:
5 + 4 + 3 + 2 + 1 =
15Revísalo, casi lo tienes, pero no estás haciendo la operacion matemática correcta.
Y enseguida te darás cuenta de que no te va a bastar cambiar la suma por una mutiplicación.
Hay que hacer más modificaciones en el código. La solución tiene la estructura que propones, pero aún faltan un par de detalles.