Utilisateur de PPCG et élu mod, @Dennis vient de devenir le deuxième utilisateur à gagner plus de 100 000 reps!
C'est une idée totalement originale, que je n'ai reçue de personne d'autre , mais faisons un défi à partir de son identifiant, 12012
en hommage!
En le regardant, vous remarquerez qu'il y a deux "sections" distinctes à son identifiant.
12
et
012
Ces deux sections totalisent un 3. C'est une propriété assez intéressante.
Définissons un "nombre de Dennis 2.0" comme tout entier positif où chaque sous-séquence maximale de chiffres strictement croissants est la somme du même nombre. Par exemple,
123
est un numéro Dennis 2.0 car il n’existe qu’une sous-liste maximale de chiffres strictement croissants et s’élève à 6. En outre, 2 846 145 est également un numéro Dennis 2.0, car les trois sous-listes maximales de chiffres croissants, à savoir
28
46
145
Tout somme à 10
. De plus, les nombres qui ne font que répéter le même chiffre doivent être des chiffres de Dennis 2.0, car ils 777
peuvent , par exemple, être divisés en deux.
7
7
7
qui clairement tout somme à sept.
Un nombre tel que 42
n'est pas un nombre de Dennis 2.0, car il est divisé en
4
2
qui ne correspondent clairement pas au même nombre.
Le défi
Vous devez écrire un programme ou une fonction pour déterminer si un nombre donné est un nombre de Dennis 2.0 ou non. Vous pouvez utiliser les entrées et les sorties dans tous les formats possibles, par exemple sous forme de chaîne, sous forme de nombre, à partir d'un fichier, d'arguments / de fonctions, depuis STDIN / STDOUT, etc., puis de renvoyer une valeur de vérité si ce nombre est un Dennis 2.0. nombre, et une valeur de fausseté si ce n'est pas. Pour référence, voici chaque numéro de Dennis 2.0 jusqu'à 1 000:
1
2
3
4
5
6
7
8
9
11
12
13
14
15
16
17
18
19
22
23
24
25
26
27
28
29
33
34
35
36
37
38
39
44
45
46
47
48
49
55
56
57
58
59
66
67
68
69
77
78
79
88
89
99
101
111
123
124
125
126
127
128
129
134
135
136
137
138
139
145
146
147
148
149
156
157
158
159
167
168
169
178
179
189
202
222
234
235
236
237
238
239
245
246
247
248
249
256
257
258
259
267
268
269
278
279
289
303
312
333
345
346
347
348
349
356
357
358
359
367
368
369
378
379
389
404
413
444
456
457
458
459
467
468
469
478
479
489
505
514
523
555
567
568
569
578
579
589
606
615
624
666
678
679
689
707
716
725
734
777
789
808
817
826
835
888
909
918
927
936
945
999
Les failles standard s'appliquent et la réponse la plus courte mesurée en octets est gagnante!
1236|6
,
entre eux? Ceci est probablement en train de l'étirer beaucoup.