Napište funkci, která vypíše prvních 20 členů Fibonacciho posloupnosti. Pro její členy platí:
a = b = 1
20.times do
puts a
a, b = b, a+b
end
#include <iostream>
int main(){
int pole[] = {1,1}; // délku pole si počítač domyslí, když mu rovnou dáme jeho obsah
std::cout << pole[0] << std::endl << pole[1] << std::endl; // vypíšeme první dva prvky posloupnosti
for (int i=0; i<18; i++){ // zbývá 18 prvků
std::cout << (pole[i%2] = pole[0] + pole[1]) << std::endl; // ukládáme je do pole střídavě vlevo a vpravo a výsledek rovnou vypisujeme
}
return 0; //formalita
}
section .data
retezec: db " ", 10
section .text
global _start
_start:
; inicializace: AX, DX jsou první dva členy, CX je požadovaný počet
mov cx, 20
mov ax, 1
mov dx, 1
; hlavní cyklus pro všech 20 členů posloupnosti
krok:
dec cx
push ax
push cx
push dx
mov rbx, retezec
add rbx, 3
mov cx, 10
; převod čísla v AX na řetězec znaků
prevod:
mov dx, 0
div cx
add dl, '0'
mov [rbx], dl
sub rbx, 1
cmp ax, 0
jnz prevod
; systémové volání - vypíšeme řetězec na výstup
mov eax, 4
mov ebx, 1
mov ecx, retezec
mov edx, 5
int 80h
; příprava na další krok cyklu
pop dx
pop cx
pop ax
mov bx, ax
add bx, dx
mov ax, dx
mov dx, bx
cmp cx, 0
jnz krok
; konec programu
mov eax, 1
mov ebx, 0
int 80h