AhmedLo AhmedLo - 3 months ago 29
Java Question

Formula for counting loop iteration

I have spent so much time trying to find the formula for this code, but still nothing .. I know the running time but the question really is, what if n = 100 for example, how many line of output will this code print? Is there any specific formula to get the count? The code I've done:

int i, j, k;

for (i = 1; i <= n; i++) {
for (j = i + 1; j <= n; j++) {
for (k = j + 1; k <= n; k++) {
System.out.println(i + " " + j + " " + k);
}
}
}

Answer

I have a feeling that you are requiring a formula to get number of iteration the nested loops will.

  for( i = 1; i <= n; i++ )
     for ( j = i+1; j <= n; j++ )
        for( k = j+1; k <= n; k++ )

For those loops, the number of iterations will be:

(n*(n-1)*(n-2))/6, where n > 2.

Generic formula for above kind nested loops:

(n*(n-1)* ... *(n-r+1)) / r!, where n > r-1.

Here, r = number of nested loops

For example: when n = 20 and r = 3, number of iterations will be = (20*19*18) / 3! = 1140