0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 13
|
|
1 | |
Длинная арифметика: найти остаток от деления большого числа (до 10^100 000) на 1206.02.2019, 18:54. Показов 5182. Ответов 23
Здравствуйте, вопрос по поводу задачки, хочу попытаться реализовать решение на плюсах, а не на питоне.
Суть такая: надо найти остаток от деления большого числа (до 10^100 000) на 12. Также ещё одна задачка на ту же тему: надо найти корень из числа, не превышающее 10^500, если оно является полным квадратом, в обратном случае вывести -1. Непонятно именно то, как реализовать работу с такими числами в С++, если предоставите код с коментариями-буду благодарен!
0
|
06.02.2019, 18:54 | |
Ответы с готовыми решениями:
23
Длинная арифметика: найти частное и остаток от деления числа a на b Длинная арифметика: найти частное и остаток от деления чисел в 3-ой системе счисления Остаток от деления (длинная арифметика) Длинная арифметика. Частное и остаток от деления Длинная арифметика (С++ Builder XE5) - не выводится остаток от деления |
223 / 150 / 79
Регистрация: 14.03.2016
Сообщений: 459
|
|
06.02.2019, 19:06 | 2 |
Если нужно найти остаток от деления именно от 10^100'000 и более значений не имеется, то для этого даже калькулятор не нужен. 10 в любой степени кроме 1 и 0 дает в остатке от 12 4
0
|
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
|
||||||
06.02.2019, 19:24 | 3 | |||||
% - остаток от деления
0
|
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 13
|
|
06.02.2019, 19:26 [ТС] | 4 |
Нет, найти остаток надо на любое число находящееся в границах от 0 до 10^100 000(1 и 100 000 нулей после, если что)
0
|
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
|
||||||
06.02.2019, 19:37 | 5 | |||||
sqrt - корень
Вместо а вводите любое число и так рассчитайте остаток
0
|
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 13
|
|
06.02.2019, 19:47 [ТС] | 6 |
Нет, вы не поняли, тип данных дабл не будем поддерживать такое число! Ведь дабл имеет границы -9 223 372 036 854 775 808 / 9 223 372 036 854 775 807, то бишь примерно 9*10^18, а у меня числа могут быть в 5000 раз более длинными в задаче на нахождение остатка и в 26 раз более длинными в задаче на нахождение корня
0
|
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
|
|
06.02.2019, 19:50 | 7 |
С задачей нахождения остатка используйте long long вместо int.
Проэксперементируйте также с корнем, может сработает.
0
|
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 13
|
|
06.02.2019, 19:54 [ТС] | 8 |
Вы знаете как выглядит значок степени, знаете что такое степень числа? Понимаете что такое 10^2, 10^10? Чему равны эти числа? Вы проходили уже степенные показатели, или ещё не доучились до этого момента?)
10^2=100 10^10=10 000 000 000 10^99=1 000 000 000...
0
|
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
|
|
06.02.2019, 20:01 | 9 |
а я и не заметил, тогда задача становится интересной
0
|
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 13
|
|
06.02.2019, 20:03 [ТС] | 10 |
0
|
66 / 57 / 13
Регистрация: 16.03.2017
Сообщений: 426
|
|
06.02.2019, 20:10 | 11 |
но в таком случае вы просто не можете записать это число в обычную переменную.
видимо это число нужно записывать в виде произведений двух long long после посчитайте остаток каждого из двух long long перемножаете остатки и уж их остаток должен быть искомым числом
0
|
37 / 36 / 9
Регистрация: 16.04.2015
Сообщений: 283
|
|||||||||||
06.02.2019, 20:23 | 12 | ||||||||||
Irrialon, Вам надо воспользоваться библиотекой для больших чисел. После чего написать
0
|
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 13
|
||||||
06.02.2019, 20:31 [ТС] | 13 | |||||
То есть как я понимаю должно выглядеть примерно так:
solution.source:1:10: fatal error: BigInt.h: No such file or directory А компилятор не поддерживает эти библиотеки!(
0
|
37 / 36 / 9
Регистрация: 16.04.2015
Сообщений: 283
|
|
06.02.2019, 20:36 | 14 |
Забавно... Интересно, есть ли желающие вводить BigInteger?
А вообще-то, всё так. Просто у Вас такой библиотеки нетути. *наверное и компика тоже. И Вы пользуетесь какой-нибудь online IDE.
0
|
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 13
|
|
06.02.2019, 20:51 [ТС] | 15 |
Я пользуюсь вижл студио, оно ругается на отстутсвие библиотеки(я криворокий, поэтому в данном случае предпологаю что просто неправильно настроил), на сайте для задач стоит GNU C++
0
|
37 / 36 / 9
Регистрация: 16.04.2015
Сообщений: 283
|
|
06.02.2019, 21:01 | 16 |
И правильно ругается. Как ни настраивай, ничего не получится. Потому что в стандарте языка C больших чисел нетути.
И каждый тут выкручивается по-своему. Кто-то сам пишет, кто-то дёргает из Инета.. Я себе, ради интереса, написал(файл BigInt.h) и пользуюсь.(правда, работает медленно)
0
|
Неэпический
|
||||||
06.02.2019, 21:10 | 17 | |||||
Boost.Multiprecision?
0
|
0 / 0 / 0
Регистрация: 06.01.2017
Сообщений: 13
|
|
06.02.2019, 21:47 [ТС] | 18 |
Хм, выглядит очень неплохо, вот только придумать надо как работать с текстовым файлом(чтение входящего числа именно из него)
0
|
Диссидент
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
|
|
08.02.2019, 11:26 | 20 |
Irrialon, Как задаются числа? В виде строки цифр?
Первая решается вообще чрезвычайно просто, без всякой длинки. Есть признаки деления на 3 и на 4 Вторую можно попробовать решить путем "школьного" алгоритма извлечения корня. Где-то обсуждалось недавно на форуме для обычных чисел. Попробую найти. И обобщить его для длинных. Добавлено через 3 минуты Разработать функцию, определяющую, является ли натуральное число квадратом какого-либо другого целого числа
1
|
08.02.2019, 11:26 | |
08.02.2019, 11:26 | |
Помогаю со студенческими работами здесь
20
Найти остаток от деления большого числа Найти частное и остаток от деления одного большого числа на другое длинная арифметика. Умножение большого числа на малое длинная арифметика. Умножение очень большого числа на малое Длинная арифметика (найти остаток при делении на 7) Остаток от деления большого числа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |