Algorithme qui élimine les chiffre répétés
Prendre une série de 10 variables booléennes initialisées à la valeur True (chiffre non utilisé) au lieu de 10 entiers dont chacun peut passer de 1 (chiffre non utilisé) à 11, puis 112 (chiffre redoublé, donc éventualité exclue) est une solution astucieuse.
J'avais songé (sans y revenir) à une relation itérative du type Bn = F(Bn-1, c), afin d'alléger l'algorithme; le calcul de la somme est une étape lourde.
Il y a, quoi que l'on choisisse:
a) un bloc de 10 instructions semblables lié à l'impossibilité d'emploi des tableaux (contrainte incontournable);
b) deux blocs du type (WHILE ... DO), dont le plus simple correspond
- soit au renversement des chiffres (selon ce que tu proposes):
Code:
1 2 3 4 5
| TANT QUE N>0
D=N-(N/10)*10 // équivalent de D = N modulo 10
L=10*L+D
N=N/10
FIN |
-soit à la détermination de la plus grande puissance de dix inférieure au nombre testé:
Code:
D:= 1000000000; WHILE (D>N) DO D:= D DIV 10;
C'est plus court à cet endroit, mais moins au niveau du filtre puisqu'il faut modifier le diviseur par une instruction du type
Ta méthode est effectivement la plus simple.
Algorithme qui élimine les chiffre répétés
Citation:
Envoyé par
Flodelarab
Cette discussion m'aura au moins appris 2 couples de mots: ... sinistrovolubile/dextrovolubile.
:D Je me demandais quel pouvait être le lien avec le contenu du présent forum ...
Citation:
Envoyé par
Flodelarab
... "Dextrograde" n'est dans aucun dictionnaire, sérieux ou fantaisiste.
Il semblerait que ce soit une francisation d'un mot anglais qui lui même est inventé.
J'ai lu ces termes dans un ouvrage français de linguistique, paru il y a quinze ou vingt ans; le contexte en rendait le sens si clair qu'il ne m'est jamais venu l'idée de consulter un dictionnaire - c'est désormais chose faite.
On ne les trouve en effet que dans des articles en anglais traitant des écritures méditerranéennes; cependant leur étymologie latine et leur orthographe autorisent leur passage en français, même s'il s'agit de néologismes.
Citation:
Envoyé par
shaun_the_sheep
... j'ai du mal à comprendre le besoin d'introduire autant de complexité pour un sujet qui me parait simple à résoudre avec juste deux boucles et un compteur ...
Les chaînes apparaissent effectivement comme un outil approprié, comme cela avait déjà été suggéré (#13, #15); il y avait toutefois un handicap: l'obligation de ne pas utiliser les tableaux (et donc aussi les chaînes, très vraisemblablement), et de s'en tenir à des types simples de variables.
Citation:
Envoyé par
shaun_the_sheep
... ce code ultra simple que je viens d'écrire ...
Il n'y a là probablement aucune pointe d'humour noir, mais ce programme (dont je ne doute pas de l''efficacité) m'a paru rien moins qu'évident ... je ne suis peut-être pas le seul dans ce cas.