[Swift] boucle for
maito
Membre
Bonjour, j'ai une simple question, j'avais un petit algorithme a faire dont voici l'énoncé :
Complete the program which takes date in number format and then makes its addition of the digits until the
last digit remains single and the print the number as lucky number . eg if input is 777
then 7+7+7 =21 = 2+1 =3 so the answer is 3.
Example1:
Enter the date(ddmmyy):
131083
Your lucky number is:
7
Example2:
Enter the date(ddmmyy):
111111
Your lucky number is:
6
et j'ai plutot bien réussi mais quelque chose me gène, on peut forcément faire plus simple au niveau du code je parle mais comment [notamment au niveau des boucle for (il y a en 3 tout de même)]?
Merci d'avance.
voici le code :
import Foundation
let nb = 111111
let nbString = "\(nb)"
var tab = [String]()
var subResult = 0
var finalResult = 0
for chr in nbString.characters{
tab.append(String(chr))
}
for (_,nb) in tab.enumerate(){
if let number = NSNumberFormatter().numberFromString(tab.removeLast())?.integerValue {
subResult += number
}
}
for chr in String(subResult).characters{
tab.append(String(chr))
if let number = NSNumberFormatter().numberFromString(String(chr))?.integerValue {
finalResult += number
}
}
print(finalResult)
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Ensuite tu fais (nb - nb%10)/10 ou même juste nb/10 et tu itères.
J'avais pas pensé au modulo ! Merci !
Beaucoup plus Swifty :
La numérologie, aussi fiable que l'astrologie, la cartomancie et l'examen des entrailles de poulets.
+1.
Mais attention aux récursivités non terminales (ce n'est pas le cas ici), car la pile d'exécution peut ne pas aimer (enfin dans ce cas d'usage c'est peu probable).
C'est bon, si c'était vraiment un numéro mais les dates sont rarement saisi ou traitées comme numéros. Je crois qu'on les traite plutôt comme strings.
C'est une race de chiens, non ? On peut dresser des canidés à faire des calculs ? C'est pour un cirque ? Un numéro avec des chiens jonglant avec des piles d'assiettes pour réaliser des calculs ? Après tout, on y arrive (plus ou moins) avec des bactéries.
J'avais pas pensé au modulo ! Merci coque sony xperia m5 coque sony m5