Solution

Suite de Fibonacci

fun main() {
    var fiboNumber = 0
    var number2 = 1

    for (i in 1..10) {
        val sum = fiboNumber + number2
        fiboNumber = number2
        number2 = sum
        println(fiboNumber)
    }
}

Afficher tout les nombres impairs de 0 à 10

for (i in 0..10) {
    when (i) {
        1,3,5,7,9 -> println(i)
    }
}

Autre solution plus optimisée :

for (i in 0..10) {
    if (i % 2 != 0) {
        println(i)
    }
}

% s'appel un modulo. Dans cette exercice, i % 2 != 0, on cherche à savoir si le reste de la division i/2 est égal à zero ou non. Par exemple, j'ai fait une tarte coupée en 9 parts et je l'offre à 4 personnes. Chaque personnes pourra prendre 2 parts et il en restera une. Cette dernière part est le reste de la division du nombre de parts par personnes. Cette histoire de tarte s'écrirait comme ceci : 9 % 4 = 1. Donc dans cet exercice on cherche à savoir si le reste de i/2 est zero ou non, sous entendu, si i était un multiple de 2, et donc un nombre pair, il n'y aurai pas de reste, hors comme on cherche à n'afficher que les nombres impairs il faut que le reste soit différent de zéros. Cette 2e solution permet de ne pas avoir à être plus versatile, si on on devait faire la même chose avec une boucle de 0 à 35 il suffirai de changer le 10 de la boucle for en 35, tandis que dans la premiere solution il faudrai écrire tout les nombres impairs entre 0 et 35.

Solutions bonus : Il y a des façon plus "littéraire" d'écrire les conditions d'itération d'une boucle :

for (i in 0 until 10) { // Même chose que for (i in 0..10) {
    if (i % 2 != 0) {
        println(i)
    }
}

On peut encore plus simplifier l'écriture de la boucle :

for (i in 1 until 10 step 2) {
        println(i)
}

Chiffrement de Caesar

De 1 à 5 :

for (i in 1..5) {
    var valeurModifie = i+3
    println("Valeur d'origine : $i. Nouvelle valeur : $valeurModifie")
}

De 5 à 1 :

for (i in 5 downTo 1) {
        var valeurModifie = i+3
        println("Valeur d'origine : $i. Nouvelle valeur : $valeurModifie")
}

Last updated