Latihan 1 dari materi Generators di PHP — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Kode awal sudah berisi fungsi fibonacci(int $n) yang masih kosong, lalu foreach (fibonacci(8) as $f) yang mengumpulkan tiap nilai ke $hasil dan mencetaknya dengan implode(" ", $hasil). Biarkan bagian foreach dan echo itu.
Di dalam fibonacci, mulai dengan dua angka: $a = 0 dan $b = 1.
Ulangi sebanyak $n kali dengan for. Di tiap putaran, yield $a;, lalu geser: $a jadi $b, dan $b jadi jumlah keduanya yang lama.
Jangan kumpulkan angkanya ke array di dalam fungsi: tiap angka diserahkan satu per satu dengan yield.
Output yang diharapkan:
0 1 1 2 3 5 8 13
Yang diperiksa: output memuat 0 1 1 2 3 5 8 13, dan kodenya memakai yield.
Hint
Fibonacci mulai dari 0 dan 1, dan tiap angka berikutnya adalah jumlah dua angka sebelumnya. Generator menyerahkan angkanya satu per satu dengan yield.
Simpan dua angka terakhir di $a dan $b. Dalam for sebanyak $n kali: yield $a, lalu hitung $next = $a + $b, pindahkan $a = $b, dan $b = $next.