но ответ можно получить
но ответ можно получить лишь для небольших значений N. Задача не решена, ибо среди тестов были и такие: N=8, A=1122334455667788, B=9999999999999999 или N=10, A=27182818284590452353, B=31415926535897932384. Требуется сократить повторные «просчеты» в этой рекурсивной схеме. Параметрами рекурсии являются k - номер позиции в числе и Sum - сумма цифр в числе до позиции k (подсчет слева направо). Например, при N=2 вызов Rec(4,2) или Rec(3,8) идет многократно. Сократим эти повторные просчеты. Введем структуру данных Matr (Matr:array[1..20,0..90] of comp;). Элемент Matr[k,Sum] предназначен для хранения количества счастливых чисел длины 2N таких, что сумма (k-1)-й цифры числа равна значению Sum. Первоначальное значение элементов Matr равно -1. В таблице указаны значения элементов Matr при N=2. Если элемент не равен -1, то «в клетке» два числа. Первое - это число вариантов, второе - номер в очередности заполнения элементов Matr.
0 1 2 3 4 5 6 7 8 9 10 11 12 13-18
658
40 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 ...
55
21 57
23 69
25 73
27 75
29 75
31 73
33 69
35 57
37 55
39 -1 -1 -1 ...
1
2 2
4 3
6 4
8 5
10 6
12 7
14 8
16 9
18 10
20 9
22 8
24 7
26 ...
1
1 1
3 1
5 1
7 1
9 1
11 1
13 1
15 1
17 1
19 -1 -1 -1 ...
Итак,
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа