Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
1 / 1 / 0
Регистрация: 11.09.2013
Сообщений: 23

Длинная арифметика

31.10.2014, 11:37. Показов 1777. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Встречаются ли среди цифр числа (2 в степени 11213 – 1) две подряд идущие девятки?
помогите пожалуйста как решить эту задачу используя процедуры длинной арифметики вот некоторые из них есть только не знаю как все это собрать.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{Процедура преобразования длинного числа, записанного
 в виде строки, в массив цифр; переменная OK принимает значение True,
 если в записи числа нет посторонних символов, отличных от десятичных
 цифр, иначе — false}
 Procedure Translate(S : String; Var A : DlChislo; Var OK : Boolean);
 Var I : Word;
 Begin
     Zero(A); I := Length(S); OK := True;
     While (I >= 1) And OK Do
      Begin
          If S[I] In ['0'..'9']
          Then A[Length(S)- I + 1]:= Ord(S[I]) - 48
          Else OK := False; I := I - 1
      End
 End;
В процедуре вызывается подпрограмма Zero(A), назначение которой — запись нуля в каждый разряд длинного числа. Вот текст этой процедуры:


Pascal
1
2
3
4
5
6
{Процедура обнуления длинного числа}
     Procedure Zero(Var A : DlChislo);
     Var I : Integer;
     Begin
        For I := 1 To NMax Do A[I] := 0;
     End;
Таким образом, длинное число записано в массив, где впереди (в качестве элементов с большими номерами) стоят незначащие нули. При выполнении действий и выводе ответа они не учитываются.

Сейчас разработаем функцию определения количества значащих цифр в записи числа, поскольку она потребуется при реализации подпрограммы умножения.


Pascal
1
2
3
4
5
6
7
8
{Функция определения количества цифр в записи длинного числа}
     Function Dlina(C : DlChislo) : Integer;
     Var I : Integer;
     Begin
       I := NMax;
       While (I > 1) And (C[I] = 0) Do I := I - 1;
       Dlina := I
     End;
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{Процедура умножения длинных чисел.
 A, B — множители, C — произведение}
 Procedure Multiplication(A, B : DlChislo; Var C : DlChislo);
 Var I, J : Integer; P : Digit; VspRez : 0..99;
  Begin
    Zero(C);
    For I := 1 To Dlina(A) Do {Цикл по количеству цифр
                               в первом числе}
     Begin
        P := 0; {Первоначально перенос равен нулю}
        For J := 1 To Dlina(B) Do {Цикл по количеству цифр
                                   во втором числе}
         Begin
           VspRez := A[I] * B[J] + P + C[I + J - 1];
           C[I + J - 1] := VspRez Mod 10; {Очередное значение цифры в
                                           разряде I + J - 1}
           P := VspRez Div 10 {Перенос в следующий разряд}
         End;
       C[I + J] := P {последний перенос может быть отличен от нуля,
                      запишем его в пока ещё свободный разряд}
     End
  End;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.10.2014, 11:37
Ответы с готовыми решениями:

Длинная арифметика
var m, i: integer; n: int64; begin readln(m); n := 1; for i := 1 to m - 1 do n := n * 2; writeln(n); end.

Длинная арифметика
Вычислить 2 в степени –200.

Длинная арифметика
Встречаются ли среди цифр числа 2^11213 -1 две подряд идущие девятки?

1
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
31.10.2014, 11:41
Длинная арифметика
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.10.2014, 11:41
Помогаю со студенческими работами здесь

Длинная арифметика
Помогите пожалуйста, если не сложно)) Требуется найти сумму чисел в цикле от 10000 до 1000009, используя длинную арифметику))

Длинная арифметика, умножение
Вычислить a*b,где числа a и b содержат до 500 и более разрядов.

Длинная арифметика. ASCII
Вот есть код для нахождения суммы двух "длинных" чисел. Я его разобрал, но один момент все же непонятен... program A+B; var ...

Длинная арифметика для Pascal
Ребята, кто-нибудь может дать мне ссылки, указания, рекомендации или еще что-то, что связано с темой "Длинная арифметика (то, что...

Длинная арифметика. Вычислить точное значение
Вычислить точное значение (n!)! (n >= 3). В заранее благодарен !!!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru