С помощью цикла for с пустым телом сформируйте строку ряда Фибоначчи: 0 1 1 2 3 5 8 13
let a = 1;
let b = 1;
let c;
let n = 10;
let i;
for (; (i <= n) && (c = a + b) && (a = b) && (b = c); i++) {}
Помогите, пожалуйста, совершенно не понимаю, как без тела цикла вообще можно вывести ряд фибоначчи.
Ответы (1 шт):
Автор решения: Leonid
→ Ссылка
let string_fibo = '';
const finale = 13;
for(let i = 0, j = 1; i <= finale; string_fibo += i + ' ', [i,j] = [j, i + j]);
console.log(string_fibo);
Можно и вовсе без предварительного объявления переменных и без ограничений практически.
for(var string = '', i = 0, j = 1; i != Infinity; string += i + ' ', [i,j] = [j, i + j]);
console.log(string);
Если очень хочется, то можно и console.log включить в выражение.
for(let string = '', i = 0, j = 1; i != Infinity ? true : console.log(string.trimEnd()); string += i + ' ', [i,j] = [j, i + j]);
А можно и все впихнуть в секцию 2 (условие работы/прекращения цикла):
for(let s='',i=0,j=1;(s+=i+' ')&&([i,j]=[j,i+j])[0]!=Infinity?true:console.log(s.trimEnd()););
P.S. Надеюсь, понятно, что это порочная практика. Код пишется для людей и хороший код понятен с первого взгляда. Поэтому задание изначально неприемлемое.