Module: Esponenziamento veloce


Problem

4/5

**Numeri di Fibonacci modulo (C++)

Theory Click to read/hide

Numeri del modulo Fibonacci

Per trovare in modo efficiente il numero di Fibonacci, utilizziamo la moltiplicazione di matrici, maggiori dettagli qui.
 
Sapendo che 
\(F_{n+m} = F_m F_{n+1} + F_{m-1} F_n\), scrivi la relazione di ricorrenza per prodotto di matrici:
• if \(m = n\) allora \(F_{2n} = F_n F_{n+1} + F_ { n-1} F_n\);
• se \(m = n + 1\) allora \(F_{2n+1} = F_{n+1 } F_{n+1} + F_n F_n\).
 

Problem

Come sai, la sequenza di Fibonacci è definita come segue:
\(F(0) = 0,\ F(1) = 1,\ F(n) = F(n – 1) + F(n – 2)\ ), per tutti \(n > 1\).
Prende il nome dal matematico italiano Leonardo Fibonacci, noto anche come Leonardo da Pisa.
 
Input
La stringa contiene un numero intero n (\(1 <= n <= 10^{18}\)).
 
Uscita
Stampa F(n) valore, calcolato modulo \(10^8\).

Incolla lo snippet di codice mancante nel programma.

 

Esempi
# Input Uscita
1 30 832040