Tómese un minuto para rastrear el código y piense qué valores están tomando i1 e i2.
Primero tenemos i1 = 0 e i2 = 1, así que vemos titular [0] + titular [1] = 1 + 2 = 3
Ahora i2 se convierte en 3, por lo que i2 <= holder.size () – 1 sigue siendo cierto. Continuamos en el bucle for interno con i1 = 0 e i2 = 3.
Esto nos da el titular [0] + titular [3] = 1 + 4 = 5.
- Cómo mejorar las matemáticas básicas para programar
- ¿Cuál es el propósito de aprender teoría de la computación?
- ¿Cómo se usa la teoría de juegos en la IA?
- ¿Por qué se acepta la tesis de Church-Turing? Tengo problemas para concebir un programa para una máquina de Turing que sume dos números arbitrariamente grandes.
- Teoría estadística: ¿Cuáles son algunos resultados teóricos interesantes relacionados con la Estimación de la densidad del núcleo?
En este punto, agregamos 2 a i2 nuevamente (por lo que se convierte en 5) y la condición del bucle ya no se mantiene, por lo que salimos del bucle interno y regresamos al bucle externo.
Ahora i1 se convierte en 2 y comenzamos el ciclo interno nuevamente. Los valores de i2 serán los mismos que antes (1 y luego 3) ya que es exactamente el mismo bucle.
Esto nos da
titular [2] + titular [1] = 3 + 2 = 5
y luego titular [2] + titular [3] = 3 + 4 = 7
Finalmente, cuando salimos del bucle interno por segunda vez e i1 toma el valor 4, lo que hace que salgamos del bucle externo.
Para resolver el problema original (agregando elementos adyacentes), no veo por qué querría usar 2 bucles. Lógicamente, la idea de agregar elementos adyacentes solo implica un paso sobre los datos.
¡Espero que ayude!