Показать сообщение отдельно
  #2 (permalink)  
Старый 16.12.2016, 08:19
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,206

Сообщение от rexrjd
Не могли бы вы пояснить почему переменная res уменьшается после первого самовызова функции.
Вот тебе более наглядная иллюстрация

function persistence(num,res) {
	var N = String(num);
	var sum = 1;
	alert('start '+N);
	for(var i = 0; i<N.length; i++){
		sum = sum * Number(N.charAt(i));
		if(String(sum).length != 1)	{
			res++;
			alert('for '+res);
			persistence(sum,res);
		}
	}	
	alert('return '+res+' num= '+num);
	return res;
}
a = persistence(39,0);

Она не "уменьшается", она именно этому равна в самой первой итерации.

Если ты хочешь иметь некий счетчик, то это делается не так.
Ответить с цитированием