Ejercicio 5-b

Ejercicio 5-b

de Diego Subeldia Loureiro -
Número de respuestas: 2

Buenas noches, estoy intentando encontrar la condición para el for de la parte b), pero no me estaría dando cuenta de cuál debe ser. Pude hacer la parte a) sin problema, utilizando la iteración while.
Según la sugerencia del ejercicio, pude observar que la diferencia de cuadrados es de la forma 2*k-1, sin embargo no veo como solo con la proposición for puedo lograr las salidas que se piden.
También observé que luego del 2, cada secuencia de cuadrados implica 2 k distintos. Me explico: para k=3 y k=4 me arroja los cuadrados 1, 4 y 9; para k=5 y k=6 me arroja los cuadrados 1, 4, 9 y 16; y así sucesivamente. Esto me trae el problema de que cada 2 valores de k hay uno en el que el programa debería escribir el cuadrado y otro para el que no, sino estaría repitiendo salidas, pero la iteración for me obliga a pasar por todos los k, cuando tal vez lo más conveniente sea ir "saltando" de a 2. Quizás con un if por ahí pero no lo veo del todo claro.
Les agradezco si me pueden guiar.
Saludos.

En respuesta a Diego Subeldia Loureiro

Re: Ejercicio 5-b

de Luis Sierra -
hola diego,

probaste a tabular los valores de los que hablas? has tomado como ejemplo k desde 3 hasta 6. observa esta tabla:

k cantidad de cuadrados a imprimir
3 3
4 3
5 4
6 4
....

sigue esta tabla hasta k = 10 o 12. encuentras un patrón en la cantidad de cuadrados a imprimir? la idea es tener un for con el cuerpo muy sencillo, y rangos de iteración asociados al patrón de la cantidad de cuadrados a imprimir, antes que un cuerpo de for complicado y rangos de iteración sencillos. desde esta perspectiva, no necesitarás ninguna instrucción de selección dentro del for.

intenta encontrar el patrón en esa tabla, y la expresión aritmética adecuada. vuelve a consultar o contar el resultado.

saludos

luis