Fibonacci mod m (rust)
F(40) mod 1000000007.
Énoncé
Calculez F(40) (Fibonacci : F(0)=0, F(1)=1) modulo 1000000007.
Entrée : 40
Sortie : une ligne, l’entier dans [0, 1000000006].
Contraintes réelles
- Entrée : une seule ligne sur stdin (format indiqué ci-dessus), sans espaces superflus en fin de ligne.
- Sortie : une seule ligne sur stdout, exactement la valeur demandée (pas de texte d’explication).
- rust : bibliothèque standard uniquement ; pas d’accès réseau ni de fichiers autres que stdin/stdout.
- Complexité : respecter la borne indiquée dans l’énoncé (souvent O(n) ou O(n²) pour n ≤ 16).
Parcours pédagogique
- Piste : Récurrences modulaires (
serie-c-fib) — étape 1 sur cette famille. - Objectif : Calculer Fibonacci modulo m sans explosion mémoire.
- Indice global : numéro de défi 755 / 10000 (famille 5/25, variante 31 / 400).
Indices
- Parsez stdin en types exacts (entier 64 bits signé si nécessaire).
- Testez sur papier avec les petites valeurs du gabarit.
- Vérifiez les cas limites mentionnés.
Solution possible
- Itération linéaire en k avec deux variables (a,b) sans stocker tout l’historique.
- Réduction modulo mod à chaque addition.
Pseudo-code (rust)
# lire la ligne stdin → variables
# appliquer l’algorithme décrit
# print(resultat) # une ligne
Résultat de référence (tests automatisés)
La CI exécute la même logique que ce dépôt sur votre variante : la sortie attendue est exactement :
102334155
Référence (tests automatisés) : 102334155
Proposer une solution
Connectez-vous ou créez un compte pour envoyer votre texte (aucune exécution de code côté serveur).