Bastien TABORDET
PREP'ISIMA2024-2025
The River 1
Introduction
Une rivière numérique est une suite où le n+1 nombre correspond à la somme des chiffres de n.
Une rivière en rencontre une autre seulement si elles possèdent un nombre en commun.Description et détail algorithmique
Nous commençons tout d'abord par créer une fonction sum dans le but de calculer le nombre suivant de la rivière numérique.
Par la suite, on va créer une boucle while qui à chaque itération va faire l'addition de la somme actuelle
avec le reste de la division par 10.
Après cela on change le nombre par celui auquel on a supprimé le chiffre des unités.
La fonction va nous retourner la somme.
Nous initialisons ensuite la fonction main qui va obtenir les deux rivières numériques.
Elle va déterminer le nombre commun ou l'intersection entre les deux rivières grâce à la fonction précédente.
On va ensuite créer une boucle while qui va s'arrêter lorsque les deux rivières auront la même valeur.
À chaque fois, si le nombre de première rivière est le plus petit, il va être remplacé par son suivant
et idem si la seconde rivière est plus petite.
Pour finir, le programme va nous donner le meeting point ou l'intersection des deux rivières lorsque le while s'arrêtera.
Résolution de The River I
Analyse des résultats
L'algorithme a réussi à trouver le meeting point entre deux rivières.
Description d'une solution différente
Pour The River 1, les solutions se ressemblent plus ou moins toutes.
Elles étaient toutes basées sur le même principe.
Bilan de mes apprentissages (REX)
J'ai pu découvrir en avant-première certains outils et types (comme le long long par exemple) du C pas encore vu lors des CM.
L'exercice m'a aider à m'améliorer sur l'utilisation des appels de fonctions notamment.
The River II
Introduction
Une rivière numérique est une suite où le n+1 nombre correspond à la somme des chiffres de n.
Une rivière en rencontre une autre seulement si elles possèdent un nombre en commun.Description et détail algorithmique
Nous initialisons la même fonction sum que pour le The River 1 (dont boucle while etc)
Nous initialisons la fonction main avec 3 variables int.
Nous allons ensuite stocker la valeur de la somme de la rivière dans une variable
ainsi que la rivière initiale dans une autre variable.
Nous allons ensuite créer une boucle while qui va calculer la somme de la rivière numérique en enlevant 1 à chaque fois.
Dès que la boucle while s'arrête car la somme précédente est égale au nombre de départ, nous allons entrer
dans un if/else qui affichera "NO" si la somme des nombres est différentes de celle de départ
et "YES" si ce n'est pas le cas.
Résolution de The River II
Analyse des résultats
L'algorithme a bien réussi à voir si un nombre est un point de rencontre (nombre commun) de deux ou plusieurs rivières numériques.
Description d'une solution différente
Cette solution provient du profil de DF-Shock.
Globalement, le programme est établi sur le même principe.
Il utilise ici une variable pour stocker une valeur ce qui évite de réiterer le test de vérification entre ma variable d et ma p.
Bilan de mes apprentissages (REX)
Cet exercice m'a dans la continuité du premier permis de m'entraîner sur les whiles et if/else.
J'ai réussi à mieux comprendre le fonctionnement des rivières numériques avec le 2
contrairement au 1 où j'avais mis trop de temps à comprendre comment le résoudre.