Геометрическая прогрессия

чет вы мудрите. вы знаете точно количество итераций цикла. это quantity.
значит у вас должно быть от 0 до quantity повторений.

потом вы перезаписываете переменную, с которой начинаете.
startNumber = startNumber * multiplier; // сокращаем запись
startNumber *= multiplier;
усё.

var startNumber = 1;
var multiplier = 4;
var quantity = 7;

for (var i = 1; i <= quantity; i++) {console.log(startNumber); startNumber *= multiplier; }
Вот так короче)

var startNumber = 1;
var multiplier = 4;
var quantity = 7;
var start=startNumber;
for (var i=1; i<quantity; i++)
{
if(startNumber==start) {
startNumber;
}
startNumber=startNumber*multiplier;
}

var startNumber = 3;
var multiplier = 3;
var quantity = 6;
var sum=0;

for( var i= 0; i < quantity; i++){

sum = startNumber * (multiplier **(i));
console.log(sum)

}

var startNumber = 3;
var multiplier = 3;
var quantity = 6;
var number = 0, step = 0;
for (var i = 1; i <= quantity; i++) {
console.log(startNumber * Math.pow(multiplier, i -1)
)
}

Здравствуйте! Сделал задание, прогрессия в консоль выводится та, которая ожидается, однако ниже fail-сообщение. Не могу понять, что именно ей не хватает)

Пришлите код вашего решения.

var startNumber = 1;

var multiplier = 4;
var quantity = 7;

var progression = [];

progression[0] = startNumber;

for (var i = 1; i <= quantity - 1; i++ ) {
progression[i] = startNumber * multiplier;
startNumber = progression[i];
}

console.log(progression.toString());

нужно просто числа вывести по одному, не нужен массив

Напишите программу, которая последовательно выводит в консоль числа в геометрической прогрессии.

Ок, спасибо!)

Просто я думал, что их нужно именно горизонтально выводить, как написано)

Добрый день. Подскажите, пожалуйста, следующее. Если переменной i задать значение startNumber, и дальше уже использовать i, то начало верное, но всё заканчивается на 3-ем или четвертом числе. Вот при таком варианте - for(var i = startNumber; i <= quantity; i++)
А если переменной i задать значение 1 ( один), то всё работает нормально. Вот сам вариант:
var startNumber = 1;
var multiplier = 4;
var quantity = 7;

for(var i = 1; i <= quantity; i++) {
console.log(startNumber);
startNumber *= multiplier;
}

Вопрос в том, почему так происходит и при значении 1 всё работает нормально, но при значении переменной i = startNumber работает только первые три цикла. Ведь формально мы переменной i задаем такое же число как и если бы указали 1. Или при использовании в переменной i значения startNumber, когда идёт сравнение i <= quantity, то i может выступить как строка, а не как число?

чет все смешалось в доме обломовых: кони, люди ©

i - это итератор, отсчитывает сколько нужно итераций. итераций нам надо quantity штук.
поэтому

i = 0; i < quantity; i++

startNumber - это число, которое мы будем на multiplier умножать quantity раз, никакого отношения к итератору оно не имеет

1 лайк

допустимо через while? у меня почему то в тренажере через for выдает ошибку
var startNumber = 1;
var multiplier = 4;
var quantity = 7;
var i=1;

while (i<=quantity) {
console.log (startNumber);
startNumber=startNumber*multiplier;
i++;
}

Видимо, в коде с for есть ошибка. Можете прислать код вашего решения, чтобы разобраться.

Добрый день! Бьюсь не один час, смотрел, как сделали другие.
Моё решение было таким :
for ( var i = 1; i <= quantity; i++ ) {
startNumber = startNumber * multiplier;
console.log(startNumber);
}

Бесполезно, выводит сообщение - ‘’ Консоль содержит лишние сообщения либо не содержит часть сообщений’’
ПОМОГИТЕ - А?

Выведите сначала startNumber в консоль, а затем вычисляйте следующее значение, то есть просто поменяйте строки внутри цикла местами. Сейчас значения выводятся, начиная со второго, потому что сначала идут вычисления и только потом вывод в консоль каждого, первое значение не учитывается.

МОСК ВЗОРВАЛСЯ =))), осмыслю. Вроде все просто, но оно, пока в меня не вошло…
Но, ГЛАВНОЕ, заработало =)

2 лайка

Чем плох этот код?

var startNumber = 1;
var multiplier = 4;
var quantity = 7;

for (var i = 0; i < quantity; i++) {
  console.log(startNumber);
  startNumber = startNumber * multiplier;
}
1 лайк

А почему плох? С кодом всё в порядке. Можно его оптимизировать:

startNumber *= multiplier;