Użytkownik PPCG i wybrany mod, @Dennis właśnie został drugim użytkownikiem, który zarobił ponad 100 000 powtórzeń!
Jest to całkowicie oryginalny pomysł, którego nie dostałem od nikogo innego , ale zróbmy wyzwanie na podstawie jego identyfikatora użytkownika, 12012
jako hołd!
Patrząc na to, zauważysz, że jego identyfikator ma dwie odrębne „sekcje”.
12
i
012
Obie te sekcje sumują się do 3. To całkiem interesująca właściwość.
Zdefiniujmy „liczbę Dennisa 2.0” jako dowolną liczbę całkowitą dodatnią, w której każda maksymalna podsekwencja ściśle rosnących cyfr sumuje się do tej samej liczby. Na przykład,
123
jest liczbą Dennisa 2.0, ponieważ istnieje tylko jedna maksymalna podlista ściśle rosnących cyfr i sumuje się do 6. Dodatkowo 2.846,145 to także liczba Dennisa 2.0, ponieważ trzy maksymalne podlisty rosnących cyfr, a mianowicie
28
46
145
Suma do 10
. Ponadto liczby, które powtarzają tę samą cyfrę, muszą być liczbami Dennisa 2.0, ponieważ na przykład 777
można je podzielić
7
7
7
które oczywiście wszystkie sumują się do siedmiu.
Liczba taka jak nie42
jest liczbą Dennis 2.0, ponieważ jest podzielona na
4
2
które oczywiście nie sumują się do tej samej liczby.
Wyzwanie
Musisz napisać program lub funkcję, aby ustalić, czy podana liczba jest liczbą Dennisa 2.0, czy nie. Możesz pobierać dane wejściowe i wyjściowe w dowolnym rozsądnym formacie wejściowym, np. Jako ciąg, jako liczba, z pliku, argumentów / return funkcji, z STDIN / STDOUT itp., A następnie zwrócić prawdziwą wartość, jeśli liczba ta to Dennis 2.0 liczba i wartość fałsz, jeśli nie jest. Dla porównania, oto każda liczba Dennis 2.0 do 1000:
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
Obowiązują standardowe luki, a najkrótsza odpowiedź mierzona w bajtach wygrywa!
1236|6
,
między nimi? To prawdopodobnie bardzo go rozciąga.