Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
Irrialon
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 13
1

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

06.02.2019, 18:54. Просмотров 628. Ответов 23

Здравствуйте, вопрос по поводу задачки, хочу попытаться реализовать решение на плюсах, а не на питоне.
Суть такая: надо найти остаток от деления большого числа (до 10^100 000) на 12.


Также ещё одна задачка на ту же тему: надо найти корень из числа, не превышающее 10^500, если оно является полным квадратом, в обратном случае вывести -1.

Непонятно именно то, как реализовать работу с такими числами в С++, если предоставите код с коментариями-буду благодарен!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2019, 18:54
Ответы с готовыми решениями:

Длинная арифметика
:senor: Здраствуйте, пишу модуль длинной математики. В принципе, работоспособность у него...

Длинная арифметика
http://www.********/index.asp?main=task&id_task=103 Как решить эту задачу? С помощью чего, и в...

Длинная арифметика
Как сделать типы длинных чисел, например, знаковое 256-ти битное целое и 256-ти битное вещественное...

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

Длинная арифметика
Вот условие задачи: Во время исследований, посвященных появлению жизни на планете Олимпия, учеными...

23
Irrialon
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 13
09.02.2019, 11:25  [ТС] 21
Цитата Сообщение от Байт Посмотреть сообщение
Irrialon, Как задаются числа? В виде строки цифр?
Первая решается вообще чрезвычайно просто, без всякой длинки. Есть признаки деления на 3 и на 4
Вторую можно попробовать решить путем "школьного" алгоритма извлечения корня. Где-то обсуждалось недавно на форуме для обычных чисел. Попробую найти. И обобщить его для длинных.

Добавлено через 3 минуты
Разработать функцию, определяющую, является ли натуральное число квадратом какого-либо другого целого числа
Число задается в виде документа "input.txt", текстовый файл с числом
0
Байт
Эксперт C
20467 / 12992 / 2733
Регистрация: 24.12.2010
Сообщений: 27,183
09.02.2019, 13:28 22
Цитата Сообщение от Irrialon Посмотреть сообщение
Число задается в виде документа "input.txt", текстовый файл с числом
То есть в виде строки из цифр? Так? То, что эта строка помещена в файл - дело уже десятое.
Первую-то задачу уже решили?

Добавлено через 15 минут
По поводу второй задачи могу предложить метод деления пополам, как наиболее просто реализуемый. Правда, здесь без длинки не обойтись. Но операций надо реализовать всего три. Сложение, умножение и деление на 2.
Кроме того можно еще проверить последнюю цифру. Если она равна 2, 3, 7, 8 то ответ получается мгновенно: -1. Что решает задачу в 40 процентах случаев.
0
Irrialon
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 13
09.02.2019, 14:25  [ТС] 23
Цитата Сообщение от Байт Посмотреть сообщение
То есть в виде строки из цифр? Так? То, что эта строка помещена в файл - дело уже десятое.
Первую-то задачу уже решили?

Добавлено через 15 минут
По поводу второй задачи могу предложить метод деления пополам, как наиболее просто реализуемый. Правда, здесь без длинки не обойтись. Но операций надо реализовать всего три. Сложение, умножение и деление на 2.
Кроме того можно еще проверить последнюю цифру. Если она равна 2, 3, 7, 8 то ответ получается мгновенно: -1. Что решает задачу в 40 процентах случаев.
По первой задаче я понял, но для деления на 3 нужна ведь сумма цифр, как же её найти? В переменную то не запишешь это число
0
Байт
Эксперт C
20467 / 12992 / 2733
Регистрация: 24.12.2010
Сообщений: 27,183
09.02.2019, 14:39 24
Цитата Сообщение от Irrialon Посмотреть сообщение
но для деления на 3 нужна ведь сумма цифр, как же её найти? В переменную то не запишешь это число
Каждая цифра не больше 9-ти. Делите по модулю 3
C++
1
2
3
4
char s[[100000]; // Это число
int sd = 0;
for(int i=0; s[i]; i++)
  sd = (sd + s[i] - '0')%3;
Да и просто число до мульона спокойно влезет
0
09.02.2019, 14:39
09.02.2019, 14:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2019, 14:39

Длинная арифметика
Ребята,объясните как решить задачу , напишите хоть часть кода. Пусть даны числа a , b . Найти...

Длинная арифметика
Алгоритмы всех операций в принципе уже готовы (длина числа ограничивается только ресурсами ПК)....

длинная арифметика
Долгое время бьюсь как составить программу по этой теме в интернете искал нашел это for (int...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru