2026/27, 10В, Python: Системы счисления (часть 3.1)

R: Фибоначчиев инкремент

Реализуйте инкремент числа в фибоначчиевой системе счисления.

Решение оформите в виде функции void inc_fib(string & n). На проверку сдайте только тело функции.

Входная строка может иметь длину до 100000 символов.

Вызов функции Вывод
string n = "100101"s;
inc_fib(n);
cout << n << endl;
101000

S: Фибоначчиев декремент

Реализуйте декремент числа в фибоначчиевой системе счисления.

Решение оформите в виде функции void dec_fib(string & n). На проверку сдайте только тело функции.

Входная строка может иметь длину до 100000 символов.

Вызов функции Вывод
string n = "101000"s;
dec_fib(n);
cout << n << endl;
100101

T: Шестнадцатеричное сложение

Дано два шестнадцатеричных числа, длиной до 100000 символов каждый. Вычислите их сумму.

Решение оформите в виде функции string sum_hex(string n1, string n2). На проверку сдайте только тело функции.

Вызов функции Возвращаемое значение
sum_hex("F1"s, "F"s)
"100"s

U: Уравновешенное троичное сложение

Реализуйте сложение в уравновешенной троичной системе счисления.

Решение оформите в виде функции string sum_ter(string n1, string n2). На проверку сдайте только тело функции.

Вызов функции Возвращаемое значение
sum_ter("1$$$"s, "$0$"s)
"11"s

Пример соответствует выражению 14+(-10)=4.


V: Фибоначчиево сложение

Реализуйте сложение в фибоначчиевой системе счисления.

Решение оформите в виде функции string sum_fib(string n1, string n2). На проверку сдайте только тело функции.

Сложность решения: квадрат от длины входных чисел (длина входных чисел до 1000 знаков).

Вызов функции Возвращаемое значение
sum_fib("10010"s, "10101"s)
"1000001"s

W: Шестнадцатеричное вычитание

Реализуйте алгоритм вычитания двух чисел, записанных в шестнадцатеричной системе счисления.

Решение оформите в виде функции string dif_hex(string n1, string n2). На проверку сдайте только тело функции.

Сложность решения: линейная от длины входных чисел (длина чисел до 100000 знаков).

Вызов функции Возвращаемое значение
dif_hex("100"s, "F"s)
"F1"s

X: Фибоначчиево вычитание

Реализуйте вычитание в фибоначчиевой системе счисления.

Решение оформите в виде функции string dif_fib(string n1, string n2). Гарантируется, что первое данное число не меньше второго. На проверку сдайте только тело функции.

Сложность решения: квадрат от длины входных чисел (длина чисел до 1000 знаков).

Вызов функции Возвращаемое значение
dif_fib("1000001"s, "10101"s)
"10010"s

Y: Умножение длинного на короткое

Реализуйте алгоритм умножения длинного числа, записанного в шестнадцатеричной системе счисления, на короткое число (из одной шестнадцатеричной цифры).

Решение оформите в виде функции string mul_hex(string n1, string n2). Гарантируется, что второй параметр состоит ровно из одной цифры. На проверку сдайте только тело функции.

Сложность решения: линейная от длины первого числа (длина числа до 100000 знаков).

Не забудьте, что в ответе может получиться 0, который записывается строкой "0".

Вызов функции Возвращаемое значение
mul_hex("A38"s, "D"s)
"84D8"s

Z: Шестнадцатеричное умножение

Реализуйте алгоритм умножения двух чисел, записанных в шестнадцатеричной системе счисления.

Решение оформите в виде функции string mul_hex(string n1, string n2). На проверку сдайте только тело функции.

Сложность решения: квадрат от длины входных чисел (длина чисел до 1000 знаков).

Запрещённые в решении приёмы:

Советы по реализации:

Вызов функции Возвращаемое значение
mul_hex("A1"s, "7F"s)
"4FDF"s

ZA: Развёрнутая фибоначчиева форма

В развёрнутой фибоначчиевой форме запись числа в фибоначчиевой системе счисления не содержит двух подряд идущих нулей. Для каждого числа существует единственное представление в развёрнутой фибоначчиевой форме.

Дано целое число oт \(1\) до \(2\times 10^9\). Найдите его представление в развёрнутой фибоначчиевой форме.

Решение оформите в виде функции string int2fib(int n). На проверку сдайте только тело функции.

Вызов функции Возвращаемое значение
int2fib(13)
"10110"s

ZZ: Умножение Карацубы

Ошибка при обработке файла statement.xml: [Errno 2] No such file or directory: '/home/judges/problems/python/number-systems/280-karatsuba-multiplication/statement.xml'

Ошибка при обработке input/output_format: [Errno 2] No such file or directory: '/home/judges/problems/python/number-systems/280-karatsuba-multiplication/statement.xml'

Примечания

Ошибка при обработке notes: [Errno 2] No such file or directory: '/home/judges/problems/python/number-systems/280-karatsuba-multiplication/statement.xml'

Ошибка при обработке примеров: [Errno 2] No such file or directory: '/home/judges/problems/python/number-systems/280-karatsuba-multiplication/statement.xml'