С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/31: Рейтинг темы: голосов - 31, средняя оценка - 4.94
Programmer
 Аватар для DannerDOS
40 / 40 / 6
Регистрация: 07.04.2009
Сообщений: 187

Длинная арифметика... (деление)

09.11.2009, 18:40. Показов 6702. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Цель: Получить остаток от деления длинного числа на обычное... (целочисленные).
Есть: Строка1 - длинное число и Строка2 - число в приделах LongInt.
Задача: Строка3 = Строка1 mod Строка2;
Вообщем хорошо бы получить Строку3...
Помогите чем сможете так сказать... (метадом, кодом и т.д.)
P.S. Puporev - спасибо тебе большое за код, но если ты мне здесь объяснишь свой метод, то это будет совсем отлично!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.11.2009, 18:40
Ответы с готовыми решениями:

Длинная арифметика. Деление большого на короткое
Искал на форуме, но так ничего конкретного и не нашёл. У меня есть длинное число представленное массивом чисел наоборот(то есть, последний...

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

Длинная арифметика
Пожалуйста помогите! Нужно найти n!!,(произведение всей четных чисел от 2 до n,если n четно и всех нечетных от 1 до n,если n нечетно)...

6
Programmer
 Аватар для DannerDOS
40 / 40 / 6
Регистрация: 07.04.2009
Сообщений: 187
11.11.2009, 10:29  [ТС]
Огромное спасибо - Puporev!
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
uses crt;
var
  m1, m2 : string;
function DelOst (m1, m2 : string) : string;
  const
    max = 1000;
  type
    mas = array [1..max] of ShortInt;
  var
    s : boolean;
    ost, t : string;
    a1, a2, mm1, mm2, p : mas;
    cod : integer;
    f, k, l, i, j, z, c, q, sum : integer;
    m, n1, n2 : integer;
  function sravn(
      m : integer;
      a1, mm2 : mas) : boolean;
    var
      k : integer;
    begin
      if m <> n2 then sravn := (m > n2)
      else begin
        sravn := true;
        k := 1;
        while (k <= m) and (a1[k] = mm2[k]) do inc(k);
        if (k <= m) then sravn := (a1[k] > mm2[k]);
      end;
    end;
  begin
    n1 := length(m1);
    for i := 1 to n1 do val(m1[i], mm1[i], cod);
    n2 := length(m2);
    for i := 1 to n2 do val(m2[i], mm2[i], cod);
    for i := 1 To n2 - 1 do a1[i] := mm1[i];
    if (n2 > n1) or ((n2 = n1) and (m2[1] > m1[1])) then begin
      ost := m1;
      DelOst := ost;
    end else begin
      m := n2 - 1;
      i := m;
      while (i < n1) do begin
        while ((sravn(m, a1, mm2) = false) and (i < n1)) do begin
          sum := 0;
          for q := 1 to m do begin
            sum := sum + a1[q];
            if sum <> 0 then break;
          end;
          if ((m > 0) and (sum <> 0)) or (m = 0) then m := m + 1;
          i := i + 1;
          a1[m] := mm1[i];
        end;
        j := 0;
        while (sravn(m, a1, mm2) = true) do begin
          f := n2 + 1;
          for k := m downto m - n2 do begin
            f := f - 1;
            if a1[k] >= mm2[f] then a2[k] := a1[k] - mm2[f]
            else begin
              a1[k] := a1[k] + 10;
              a1[k - 1] := a1[k - 1] - 1;
              for l := k downto 1 do
                if a1[l] < 0 then begin
                  a1[l - 1] := a1[l - 1] - 1;
                  a1[l] := a1[l] + 10;
                end;
              a2[k] := a1[k] - mm2[f];
            end;
          end;
          for l := m - n2 - 1 downto 1 do
          a2[l] := a1[l];
          j := j + 1;
          p[i - n2 + 1] := j;
          while ((a2[1] = 0) and (m>0)) do begin
            for z := 1 to m - 1 do
              a2[z] := a2[z + 1];
            m := m - 1;
            a2[m + 1] := 0;
          end;
          for z := 1 to m do
          a1[z] := a2[z];
        end;
        while ((a1[1] = 0) and (m > 0)) do begin
          for z := 1 to m - 1 do
            a1[z] := a1[z + 1];
          m := m - 1;
          a1[m + 1] := 0;
        end;
      end;
      ost := '';
      for i := 1 to m do begin
        str(a1[i], t);
        ost := ost + t;
      end;
      DelOst := ost;
    end;
  end;
 
begin
  Write('Delitel: ');
  ReadLn(m1);
  Write('Delimoe: ');
  ReadLn(m2);
  Write('Ostatok: ', DelOst(m1, m2));
  ReadLn;
end.
2
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
11.11.2009, 13:21
Спасибо за публикацию, еще кому-то пригодится.
1
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
11.11.2009, 13:30
что то код прям длинный сильно или мне так кажется?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
11.11.2009, 13:33
mamedovvms, А ты короче напиши деление длинного на длинное.
0
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
11.11.2009, 13:56
Цитата Сообщение от DannerDOS Посмотреть сообщение
Строка1 - длинное число и Строка2 - число в приделах LongInt.
в принципе для данного условия можно написать
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
11.11.2009, 21:53
mamedovvms, Это я давно писал для двух длинных, а товарищу срочно понадобилось и он приспособил для длинного и короткого, конечно можно короче написать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.11.2009, 21:53
Помогаю со студенческими работами здесь

Длинная арифметика
Вычислить точное значение суммы 1^2 + 2^2 +3^2 +...+ n^2 (n&gt;1999). Задачу необходимо выполнить именно с длинно арифметикой.. надеюсь на...

Длинная арифметика
Всем привет! Нужно составить программу, которая будет суммировать длинные числа, но не через обычный одномерный массив, а через списки....

Длинная арифметика
Подскажите пожалуйста что за ошибка 203. Найти НОК 2 длинных чисел. Program NOK; var a,b: integer; function NOD (a,b:integer):...

длинная арифметика
надо умножить 2 многозначных числа! чила не влазиют не в один диапазон! они вводятся с клавиатуры! я оешил делать эту прогу через строки...

Длинная арифметика
Тема Длинная арифметика. На языке Паскаль. Условие:Составить прогу для вычисления точного значения n!,где n&gt;12. Как сделать так...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru