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

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 раз, никакого отношения к итератору оно не имеет

допустимо через 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 в консоль, а затем вычисляйте следующее значение, то есть просто поменяйте строки внутри цикла местами. Сейчас значения выводятся, начиная со второго, потому что сначала идут вычисления и только потом вывод в консоль каждого, первое значение не учитывается.

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

1 Симпатия

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

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

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

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

startNumber *= multiplier;

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

while(quantity > 0){
console.log(startNumber);
quantity --;
startNumber *=multiplier;
}

я сделаль -.-
var startNumber = 1;
var multiplier = 4;
var quantity = 7;
for(var i=startNumber; i<=startNumber*(multiplier**quantity-1); i*=multiplier){
console.log(i)
}

Можно еще дешевле

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


while(quantity > 0){
  console.log(startNumber)
  startNumber *= multiplier;
  quantity--;
}
var startNumber = 1;
var multiplier = 2;
var quantity = 3;

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