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


#1

@GreenLera глючит проверка:

Первый тест. Стартовое значение 3, множитель: 3, количество: 6. Ожидаю вывод в консоль: 3, 9, 27, 81, 243.

3 (number)

9 (number)

27 (number)

81 (number)

243 (number)

Консоль содержит указанные сообщения

Значений 5 вместо 6, проверка сработала. Остальные 2 не срабатывают


#2

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


#3

Программа работает, просто первый вариант был неправильный и я заметил глючок, и вам рассказал. Потом у себя все исправил


#4

Спасибо вам)


#5

Добрый день, написал вот такой код, все правильно работает, но вопрос, его можно сократить каким-то образом?

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

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


#6

А если так?

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

#7

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

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

#8

А зачем эта проверка вообще нужна?


#9

Я не знал как иначе вывести 3 в начале.


#10

выводишь до цикла, а в цикле <=, меняешь на <


#11

Спасибо за ваши ответы. :blush:


#12

Немного сократил код:

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

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

#13
var startNumber = 1;
var multiplier = 4;
var quantity = 7;
var i = 0;
while (i < quantity){
  console.log(startNumber);
  startNumber *= multiplier;
  i++;
}

||

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

#14

Почему нужно console.log(); Вставлять в начало? Точно такой же был код, но думал то что эту команду нужно вставлять в конец…


#15

Вставляем в начало что бы видеть стартовое число еще до вычислений.

var startNumber = 1;

В нашем варианте первое число будет 1, если мы поставим в конец:

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

То у нас не будет первого числа, произойдет вычисление и будет отображена прогрессия начиная со второго числа.


#16

Таким образом первый раз выводится первое значение последовательности. То есть не измененное, дальше оно меняется в этом цикле (умножается), но после умножения не выводится в консоль. Перемноженное выводится уже в начале следующей итерации. Если поставить в конец - вывод будет начинаться со второго числа с последовательности.


#17

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

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


#18

Мой вариант:

Summary
var startNumber = 1;
var multiplier = 4;
var quantity = 7;
for (var i = 1, number = startNumber; i <= quantity; i++, number *= multiplier) {
  console.log(number);
}

#19

У вас цикл неправильно сформирован. Цилк for имеет вид.

for (;;) {
}

for (Начало; Условие; Шаг) {

}

и работает таким образом

for (Начало; Условие; Шаг) {
Начало
Если условие вернет true выполнится код
Шаг
Если условие вернет true выполнится код
Шаг
Если условие вернет true выполнится код
Шаг....
И так бесконечно пока условие не вернет false
}