¿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)?
- [matemáticas] n-m + 1 [/ matemáticas]
- [matemáticas] nm [/ matemáticas]
- [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]