Задать вопрос
@Dazmond

Лёгкая задачка js, как возвести в квадрат с таким принципом (2∗n−1)?

Помогите решить вроде лёгкую задачку

Дано целое число n, большее 1. Найти квадрат данного числа, используя формулу n^2 = 1 + 3 + 5 + ... + (2 * n - 1). Из функции необходимо вывести строку, состоящую из чисел, получающихся на каждом шаге при добавлении каждого слагаемого (таким образом, получится строка из квадратов всех чисел от 1 до n).
Вот что у меня получилось
function testCycle(n) {
    var x = "";
    for (i = 1; i <= n; i++){
    x += (2*i-1) + "  "
    }
    return x;
}
console.log (testCycle(6))

По итогу мне выдает такую цепочку "1 3 5 7 9 11", а должен такую "1 4 9 16 25 36". Подскажите пожалуйста в чем моя ошибка?
P.S. дополнительный вопрос не в тему - почему return стоит после цикла, а не внутри него, по идее цикл должен выполняться внутри себя, а потом уже выводить return x внутри функции? Т.е. должно быть последнее посчитаете число. Но выполняется только когда return стоит после цикла.
  • Вопрос задан
  • 1069 просмотров
Подписаться 1 Простой 1 комментарий
Решение пользователя Dazmond К ответам на вопрос (2)
@Dazmond Автор вопроса
Путем долгих переборов нашел ответ, не понимаю до конца как это работает, мне кажется и в первом случае должно было но вот что получилось

function testCycle(n) {
    var x = '';
    var y = 0;
    for (var i = 1; i <= n; i++) {
    	y += (2 * i - 1);
    	x += y + ' ';
    	}
    return x;
}
console.log(testCycle(6)); 
//1 4 9 16 25 36
Ответ написан
Комментировать