- 20, Oct 2024
- #1
Реализуйте это рекуррентное отношение как функция или программа, которая вводит и выводит неотрицательное целое число:
Ф(0) = 0
F(N) = наименьшее целое число, большее, чем F(N-1), такое, что сумма и/или произведение его цифр по основанию 10 равна N.
N — это входные данные вашей программы, а F(N) — ее выходные данные.
Для ясности: сумма цифр в числе, например 913, равна 9+1+3=13. Произведение равно 9×1×3=27. Для однозначных чисел сумма и произведение представляют собой одно и то же число. Числа, содержащие 0, конечно, имеют произведение 0.
Результаты через F(70):
N F(N)
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 19
11 29
12 34
13 49
14 59
15 69
16 79
17 89
18 92
19 199
20 225
21 317
22 499
23 599
24 614
25 799
26 899
27 913
28 1147
29 2999
30 3125
31 4999
32 5999
33 6999
34 7999
35 8999
36 9114
37 19999
38 29999
39 39999
40 41125
41 59999
42 61117
43 79999
44 89999
45 91115
46 199999
47 299999
48 311128
49 499999
50 511125
51 699999
52 799999
53 899999
54 911116
55 1999999
56 2111147
57 3999999
58 4999999
59 5999999
60 6111125
61 7999999
62 8999999
63 9111117
64 11111188
65 29999999
66 39999999
67 49999999
68 59999999
69 69999999
70 71111125
Выигрывает самый короткий код в байтах. Слава, если вы сможете показать, что ваш код обладает некоторой эффективностью.
#код-гольф #математика #последовательность #арифметика #целое число