¿Cuántas veces se ejecutarán los siguientes casos: 1) para (I = m; I <= n; I ++) 2) para (I = m; I <n; I ++) 3) para (I = m; I <n ; I + = x)?

  1. [matemáticas] n-m + 1 [/ matemáticas]
  2. [matemáticas] nm [/ matemáticas]
  3. [matemáticas] \ lfloor [/ matemáticas] [matemáticas] (nm-1 + x) / x \ rfloor [/ matemáticas]
  • supongamos que el ciclo va como [matemática] m, m + x, m + 2x, ……., m + kx [/ matemática]
  • debemos tener [matemáticas] m + kx <= n-1 [/ matemáticas]
  • número de veces que se ejecuta el ciclo es [matemática] k + 1 [/ matemática]
  • caso 1: [matemáticas] m + kx = n-1 [/ matemáticas]
    • en este caso [matemáticas] k = (nm-1) / x [/ matemáticas]
    • entonces el ciclo se ejecuta por [math] k + 1 [/ math] veces es decir, [math] (nm-1 + x) / x [/ math] veces
  • caso 2: [matemáticas] m + kx <n-1 [/ matemáticas]
    • entonces [matemáticas] k <(nm-1) / x [/ matemáticas]
    • ahora como k es un entero, entonces [math] k = \ lfloor (nm-1) / x \ rfloor [/ math]
    • entonces el ciclo se ejecuta por [math] k + 1 [/ math] veces, es decir, [matemática] \ lfloor (nm-1 + x) / x \ rfloor [/ math]
  • entonces la respuesta general para el tercer caso es [math] \ lfloor (nm-1 + x) / x \ rfloor [/ math]