Mais l'algo c'est juste du creusage de tête
J'utilise - pour symboliser une espace et je commence par la base. Genre pour 3 lignes ça fait :
- ****** (6 étoiles)
- puis -****- (4)
- puis --**-- (2)
Si on s'intéresse aux lignes :
- toutes les lignes contiennent des * et/ou des espaces et font la même longueur (la longueur de la ligne la plus longue, cad la base, cad 6 caractères dans mon exemple)
- la longueur de la base détermine le nombre de lignes qui compose le triangle : plus la base est grande, plus ya de lignes pour atteindre le chapeau (obvious ).
Pour une base de 6 dans mon exemple, on a 3 lignes... en dessinant 2-3 exemples on dirait bien que pour une base de longueur paire (2N étoiles de long) on obtient un triangle de N étages
Ici on sait que si on nous donne une longueur de base (genre 8), on déduit un nombre de ligne (4)
Si on s'intéresse au contenu d'une ligne : en fonction de l'étage souhaité les * commencent plus ou moins tard (après plus ou moins d'espaces). Mais combien d'espace avant la première * ?
Pour le nombre d'espaces on constate que les étoiles commencent :
- après 0 espace pour la 1ère ligne... on va dire pour la ligne numéro 0 (en info on aime bien commencer à 0)
- après 1 espace pour la 2ème ligne, ligne numéro 1
- après 2 espaces pour la 3ème ligne, ligne numéro 2
- ...
Bref on a une relation entre le numéro de l'étage et le nombre d'espace à insérer.
Ici on sait que pour la ligne numéro N on commence par foutre N espaces
Pour le nombre d'étoiles sur une ligne on remarque que :
- longueur de la base (ligne numéro 0)
- longueur de la base moins 2 étoiles (ligne numéro 1, car on a mis 1 espace à gauche et 1 à droite)
- longueur de la base moins 4 étoiles (ligne numéro 2)
Ici on sait que pour la ligne numéro N on fout [longueur de la base - 2*N] étoiles
Pour le nombre d'espaces après la dernière étoile d'une ligne, c'est le même que pour le nombre d'espaces avant la première étoile de cette même ligne, donc pb déjà résolu ici
Ici on sait que pour la ligne numéro N on termine par foutre N espaces
Bref pourquoi pas faire une fonction du genre ligne(numéro de l'étage, longueur de la base), en tenant compte du fait que pour toi la base est en bas, pas en haut
Message édité par Xavier_OM le 08-10-2009 à 17:21:27
---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.