извините, если кто-то уже спрашивал об этом, не нашел его.
Я забочусь о том, какое минимальное количество аргументов я должен передать рекурсивной функции, чтобы изучить все ее значения.
Я приведу пример; Предположим, что я хочу написать функцию, которая возвращает мне сумму всех значений, содержащихся в матрице MXM, я, безусловно, могу сделать это (и сделал это) следующим образом:
int sum(int mat[][M], int i, int j){
if(j==M-1&&i==M-1){
return mat[i][j];
}
if(j==M){
i++;
j=0;
}
return mat[i][j] + sum(mat, i, j+1);
}
Вызов
sum(mat,0,0);
Я получаю результат.
Мой вопрос: могу ли я получить тот же результат, написав функцию с меньшим количеством аргументов? О примере: могу ли я получить тот же результат, написав такую функцию, как:
int sum(int mat[][M], int i){...}
или просто
int sum(int mat[][M]){...}
?
Говоря более абстрактно, каков минимум количество аргументов, которые мне нужно передать в рекурсивную функцию, чтобы исследовать матрицу?
Спасибо всем.