11 класс, углублённый уровень. Обзорный практикум к шестнадцатой паре: шесть задач — длинное число в списке, сложение и умножение столбиком на бумаге и в программе, сколько цифр у результата, вычисления с числами в тысячи цифр.
25, а не 25 цифр,
без пробелов между разрядами и без нулей впереди. На КЕГЭ ответ
читает машина, и здесь так же.Целый тип в C++, Java, Паскале — 64 бита: наибольшее число 263 − 1 = 9 223 372 036 854 775 807, 19 цифр. Уже 21! и 264 туда не помещаются. Числа в сотни цифр нужны в криптографии (ключ RSA на 2048 бит — 617 цифр) и в точных вычислениях. Длинная арифметика — хранить число по частям и считать столбиком, как на бумаге. В Python тип int длинный сам: внутри он тоже хранит число частями.
Список цифр младшими вперёд: 8497 → ,
a[i] — цифра при 10i. Перенос в новый старший разряд —
просто
.
Блоками по три цифры (основание 1000): 3 120 045 007 →
. Блок внутри числа при выводе дополняют
нулями: 45 → 045. Элементов в три раза меньше, чем цифр, — и действий
тоже.
У натурального x цифр ⌊lg x⌋ + 1, у mn — ⌊n·lg m⌋ + 1 (lg 2 ≈ 0,30103, lg 3 ≈ 0,47712, lg 7 ≈ 0,84510). Сумма двух n-значных — n или n + 1 цифр. Произведение m-значного и n-значного — m + n − 1 или m + n цифр.
len(s) — сколько цифр, s[:5] — первые пять, s.count('0') — сколько нулей. Сначала проверь программу на маленьком числе, где ответ знаешь: 2 ** 10 = 1024 — четыре цифры, сумма 7.
Материалы подготовлены с использованием технологий искусственного интеллекта.