Module: Exponenciação rápida


Problem

4/5

**Números de Fibonacci módulo (C++)

Theory Click to read/hide

Números do Módulo Fibonacci

Para encontrar o número de Fibonacci com eficiência, usamos a multiplicação de matrizes, mais detalhes aqui.
 
Sabendo disso 
\(F_{n+m} = F_m F_{n+1} + F_{m-1} F_n\), escrever a relação de recorrência para o produto da matriz:
• se \(m = n\) então \(F_{2n} = F_n F_{n+1} + F_ { n-1} F_n\);
• se \(m = n + 1\) então \(F_{2n+1} = F_{n+1 } F_{n+1} + F_n F_n\).
 

Problem

Como você sabe, a sequência de Fibonacci é definida da seguinte forma:
\(F(0) = 0,\ F(1) = 1,\ F(n) = F(n – 1) + F(n – 2)\ ), para todos os \(n > 1\).
Recebe o nome do matemático italiano Leonardo Fibonacci, também conhecido como Leonardo de Pisa.
 
Entrada
A string contém um número inteiro n (\(1 <= n <= 10^{18}\)).
 
Saída
Imprima o valor F(n), módulo computado \(10^8\).

Cole o snippet de código ausente no programa.

 

Exemplos
# Entrada Saída
1 30 832040