Информация об изменениях

Сообщение Re: Красивые числа от 09.12.2021 0:25

Изменено 09.12.2021 0:31 iriska2

Re: Красивые числа
Здравствуйте, avovana, Вы писали:


A>

A>Тестовое задание.
A>В данной задаче будут рассматриваться 13-ти значные числа в тринадцатиричной системе исчисления(цифры 0,1,2,3,4,5,6,7,8,9,A,B,C) с ведущими нулями.
A>Например, ABA98859978C0, 6789110551234, 0000007000000
A>Назовем число красивым, если сумма его первых шести цифр равна сумме шести последних цифр.
A>Пример:
A>Число 0055237050A00 — красивое, так как 0+0+5+5+2+3 = 0+5+0+A+0+0
A>Число 1234AB988BABA — некрасивое, так как 1+2+3+4+A+B != 8+8+B+A+B+A
A>Задача:
A>написать программу на С/С++ печатающую в стандартный вывод количество 13-ти значных красивых чисел с ведущими нулями в тринадцатиричной системе исчисления.
A>В качестве решения должен быть предоставлено:
A>1) ответ — количество таких чисел. Ответ должен быть представлен в десятичной системе исчисления.
A>2) исходный код программы.


from functools import cache

nums = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

@cache
def num_ways(n, depth, numbers):
    if n < 0:
        return 0
    if depth == 0 or n < 0:
        return 1 if n == 0 else 0
    ans = 0
    for number in numbers:
        ans += num_ways(n-number, depth-1, numbers)
    return ans

count = 0
for s in range(0, 73):
    cnt = num_ways(s, 6, nums)
    print(s,'     ', cnt)
    count += cnt*cnt
print(count)


0 1
1 6
2 21
3 56
4 126
5 252
6 462
7 792
8 1287
9 2002
10 3003
11 4368
12 6188
13 8562
14 11592
15 15378
16 20013
17 25578
18 32137
19 39732
20 48378
21 58058
22 68718
23 80262
24 92547
25 105378
26 118518
27 131698
28 144627
29 157002
30 168518
31 178878
32 187803
33 195042
34 200382
35 203658
36 204763
37 203658
38 200382
39 195042
40 187803
41 178878
42 168518
43 157002
44 144627
45 131698
46 118518
47 105378
48 92547
49 80262
50 68718
51 58058
52 48378
53 39732
54 32137
55 25578
56 20013
57 15378
58 11592
59 8562
60 6188
61 4368
62 3003
63 2002
64 1287
65 792
66 462
67 252
68 126
69 56
70 21
71 6
72 1
707972099627

Разве не так?
Re: Красивые числа
Здравствуйте, avovana, Вы писали:


A>

A>Тестовое задание.
A>В данной задаче будут рассматриваться 13-ти значные числа в тринадцатиричной системе исчисления(цифры 0,1,2,3,4,5,6,7,8,9,A,B,C) с ведущими нулями.
A>Например, ABA98859978C0, 6789110551234, 0000007000000
A>Назовем число красивым, если сумма его первых шести цифр равна сумме шести последних цифр.
A>Пример:
A>Число 0055237050A00 — красивое, так как 0+0+5+5+2+3 = 0+5+0+A+0+0
A>Число 1234AB988BABA — некрасивое, так как 1+2+3+4+A+B != 8+8+B+A+B+A
A>Задача:
A>написать программу на С/С++ печатающую в стандартный вывод количество 13-ти значных красивых чисел с ведущими нулями в тринадцатиричной системе исчисления.
A>В качестве решения должен быть предоставлено:
A>1) ответ — количество таких чисел. Ответ должен быть представлен в десятичной системе исчисления.
A>2) исходный код программы.


from functools import cache

nums = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

@cache
def num_ways(n, depth, numbers):
    if n < 0:
        return 0
    if depth == 0:
        return 1 if n == 0 else 0
    ans = 0
    for number in numbers:
        ans += num_ways(n-number, depth-1, numbers)
    return ans

count = 0
for s in range(0, 73):
    cnt = num_ways(s, 6, nums)
    print(s,'     ', cnt)
    count += cnt*cnt
print(count)


0 1
1 6
2 21
3 56
4 126
5 252
6 462
7 792
8 1287
9 2002
10 3003
11 4368
12 6188
13 8562
14 11592
15 15378
16 20013
17 25578
18 32137
19 39732
20 48378
21 58058
22 68718
23 80262
24 92547
25 105378
26 118518
27 131698
28 144627
29 157002
30 168518
31 178878
32 187803
33 195042
34 200382
35 203658
36 204763
37 203658
38 200382
39 195042
40 187803
41 178878
42 168518
43 157002
44 144627
45 131698
46 118518
47 105378
48 92547
49 80262
50 68718
51 58058
52 48378
53 39732
54 32137
55 25578
56 20013
57 15378
58 11592
59 8562
60 6188
61 4368
62 3003
63 2002
64 1287
65 792
66 462
67 252
68 126
69 56
70 21
71 6
72 1
707972099627

Разве не так?