Как оба этих фрагмента кода имеют одинаковый вывод при условии, что len > 0

Anubhav Saini спросил: 14 ноября 2017 в 06:48 в: c++

Я понимаю второй фрагмент кода, но не первый.

Первый код:

int max(int a[], int len)
{
 if (len == 1)
  return a[0];
 int m = max(a+1, len-1);
 if (a[0] > m)
  return a[0];
 return m;
}

Второй код:

int max(int a[], int len) {
 int m = a[0];
 for (int i = 0; i < len; ++i)
  if (a[i] > m)
   m = a[i];
 return m;
}

В первом фрагменте кода значение m фактически сохраняется каждый раз, когда вызывается функция max


0 ответов