![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 16.12.2010
Сообщений: 18
|
![]()
Необходимо считать три числа из файла, максимальное значение которых может достигать 10^100, что, по сути, немало. Конечно, можно считать числа в виде строк, посимвольно сравнить их и вывести порядковый номер максимально, но мне необходимо вывести само число, которое является наибольшим из них. При этом, числа могут отличаться одним лишь последним, 10^100-ым символом, что добавляет этой проблеме сложности. Есть ли какие-нибудь советы, как реализовать подобное? Только без векторов и прочего (а то я видел, эту задачу с использованием векторов и прочего хотели решить).
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
про длинную арифметику Вы что-нибудь слышали?
Так вот - описываете три переменные, которые могут вместить данные числа: это либо строка на 100 символов, либо массив из байт/символов на 100 элементов (либо вектор, динамический массив и вообще всё, что угодно, что может содержать последовательно 100 циферок и обеспечить доступ к любой из этих циферок). считываете туда выши числа. выравниваете по старшим разрядам. сравниваете (пользуясь знаниями начальной школы). Найденное число выводите. Профит. p.s. вашего C++ я не знаю, пример написать не могу. p.p.s. возможно в вашей версии C++ уже есть тип данных BigNumbers - можете воспользваться им.. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 16.12.2010
Сообщений: 18
|
![]()
Serge_Bliznykov, увы, я только изучаю C++ и про длинную арифметику слышал лишь краем уха. Массив из 100 элементов типа int выглядит достаточно легко, но знаний начальной школы, состоящих из умения запускать Paint и рисовать ровный круг, недостаточно, чтобы я смог выровнять числа по старшим разрядам. Аналогично со сравнением, нет идей по поводу управления и условия остановки цикла посимвольного сравнения.
|
![]() |
![]() |
![]() |
#4 |
Сливочное масло
Участник клуба
Регистрация: 01.01.2011
Сообщений: 1,149
|
![]()
Чтото не понял в чём проблема... Ответ написан в первом посте... Не?
Работаешь как с строками, сравниваешь для начала их длины. Затем посимвольно с самого начала.
Сливочное масло Valio - компиляция как по маслу
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 16.12.2010
Сообщений: 18
|
![]() Код:
Код:
|
![]() |
![]() |
![]() |
#6 |
Сливочное масло
Участник клуба
Регистрация: 01.01.2011
Сообщений: 1,149
|
![]()
Действительно выглядит неочень. Я вообще тоже на Си не пишу, покажу как я предполагал на Делфи это делать. Переделать не составит труда.
Код:
Сливочное масло Valio - компиляция как по маслу
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 02.09.2011
Сообщений: 336
|
![]()
А не проще питон заюзать? Там длинная арифметика по умолчанию.
http://liveworkspace.org/code/0e31fe...61ec172181ba73
Если ты не можешь найти то, ради чего стоит жить, лучше найти то, за что стоит умереть
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 15.11.2008
Сообщений: 577
|
![]()
acmp.ru - отсюда ?)
Код:
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 16.12.2010
Сообщений: 18
|
![]()
rUs_LAN, именно оттуда и именно это решение меня, человека, не знающего векторы и их функции, меня пугает.
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 16.12.2010
Сообщений: 18
|
![]()
Ладно, я переделал код...
Код:
Последний раз редактировалось Nomicos; 12.07.2012 в 12:07. |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Большие числа | GroZa | Общие вопросы C/C++ | 5 | 14.06.2012 19:24 |
Очень очень большие числа. | Mr_freeman | Помощь студентам | 5 | 03.05.2012 16:49 |
большие числа | NiCola999 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 37 | 20.07.2011 16:26 |
Большие числа | DRAgon™ | Общие вопросы по Java, Java SE, Kotlin | 12 | 29.01.2011 02:53 |
Большие числа | Лубышев | Помощь студентам | 6 | 27.02.2008 22:57 |