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

→ Ссылка