Les nombres à l'envers
Citation
Pour voir le monde à l'endroit, il faut le regarder à l'envers.
Objectifs pédagogiques
- La démarche algorithmique.
- Les opérateurs arithmétiques.
- La dénomination de variables de type "long".
- Les boucles.
Le problème consiste ici à «retourner» un nombre. Par exemple 42 deviendra 24, 512 deviendra 215, 1234 deviendra 4321 et 7 restera 7.
Réfléchissez comment résoudre ce problème et esquissez un algorithme sur papier avant de regarder le code suivant.
fun reverse (x: Long): Long {
var t: Long = x
var r: Long = 0
while (t != 0L) {
r = r * 10L + t % 10L
t = t / 10L
}
return r
}
fun main(args: Array<String>) {
println(reverse(512))
println(reverse(100))
println(reverse(0))
}
215
1
0
Exercice
Comment vous allez tester votre programme pour vous assurez qu'il fonctionne avec toutes les valeurs. Que devrait donner reverse (-42)
? Est-ce bien le cas ? Pourquoi ?
Expliquez comment fonctionne l'opérateur %
avec les nombres négatifs. Notez que ce comportement peut varier d'un langage de programmation à un autre.
Testez avec ce petit programme:
for (i: Int in -5 .. 5) {
println("$i % 3 = ${i % 3}")
println("$i % -3 = ${i % -3}")
}
Lisez plus sur la problématique de l'opérateur %
sur wikipedia.