2011 – 5

Si consideri il seguente frammento programma:

#define N 9

int R[N];
int i=0, j=(N-1), c=0, k;
while(i < j)
   if(R[i]+R[j] > k)
   {
      c += (j-i);
      i++;
   }
   else
      j--;

Dire cosa contiene la variabile c al termine dell’esecuzione del frammento di programma, quando:

  • N = 9
  • R = [100, 87, 67, 54, 34, 23, 11, 10, 1];
  • k = 143;

Soluzione: 4


Con indici dai lati opposti scorre gli elementi e se la coppia supera un certo valore incrementa c