Как через рекурсию описать геометрическую прогрессию?

помогите не справляюсь с кодом

Я опишу как разобрался, а ты задавай вопросы где не понятно. У нас ресурс образовательно-научающий, поэтому вместо того чтобы просто дать код, я распишу то как к нему пришел. Я использовал такой план к поиску решения:

Разобрался что такое прогрессия с точки зрения математики. Геометрическая прогрессия — урок. Алгебра, 9 класс.. Википедия в этом плане дает корректные, но бесполезные для неуглублунного в математическую нотацию формулы.

Выводы: прогрессия имеет понятие членов прогрессии, каждый член вычислется из предыдущего: предыдущий множится на “знаменатель прогрессии”. И прогрессия начинается с некоторого заране заданного первого члена (нужно жеж как-то начать эту последовательность).

Потом я задумался в чем состоит вопрос “описать прогрессию через рекурсию”. Это к тому что твой вопрос не сформирован так что на него можно ответить. Мне нужно переформулировать вопрос, который я сформулировал как “найти n-ный член прогрессии”. Вопросы могут быть иными. например “найти сумму n-ных членов прогресии”.

Дальше можно “срезать” шаги размышлений, зная что решение делается через рекурсию. На предыдущем шаге я написал несколько конкретных примеров прогрессии чтобы мозг чуток схватил понятие интуитивно. Позже эти конкретные примеры я буду использовать чтобы проверить корректность функции.

Рекурсия это по сути функция с двумя и более ветками (обычно именно две) которые вернут значение. Одна из веток выражена через саму функцию, а вторая иначе (обычно это возврат константы или аргумента).

Имея на руках вопрос, понимание прогрессии и рекурсии собираю это вместе. Мы описываем функцию, которая должна описывать прогрессию. Для этого нужно знать первый элемент start и знаменатель step прогрессии, а вопрос про n-ный член прогрессии закодирован в member.

function getProgressionMember(start, step, member) {
	
}

Выше писал что рекурся это почти всегда 2 ветки возвращаемых значений. Кто только осваивает рекурсию, рекомендую задумываться про ветку которая выходит из рекурсии. Ее самую, простую для случая первого элемента прогрессии мы можем описать. Каким бы ни был знаменатель прогрессии, первый член прогрессии это всегда начальное значение. Так и запишем.

function getProgressionMember(start, step, member) {
	if (member === 1) {
		return start
	}
}

А дальше интереснее. Если член прогрессии не первый, то по определению не первый член прогресии это предыдущий член прогресии поможенный на основание. Если n-ый член прогресии выражается как getProgressionMember(start, step, member), то предыдущий выражается в общем виде как getProgressionMember(start, step, member - 1). Осталось помножить на основание и вернуть. Наличие корректного условия где функция может вернуть значение (для самого первого члена прогресии) гарантирует что выполнение не зациклится бесконечно

function getProgressionMember(start, step, member) {
	if (member === 1) {
		return start
	} else {
		// предыдущий член прогрессии помноженный на знаменатель прогресии
		return getProgressionMember(start, step, member - 1) * step
	}
}

Это и есть решение. Проверяем, вроде работает.

getProgressionMember(1, 2, 5) // 16
3 лайка

спасибо)) я писал так

let a = 3;
let b = 2;
let out = ‘’;
function matRec(){

if(out>=50){
return ;

}else{

out = a*=b;
document.write(out);
document.write('-');
matRec();

}
}
matRec();

просто поздно увидел ваш письмо)

а можете мне помочь ?писать код треугольник паскаля?

Заводи новую тему и там обсудим