![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 27.09.2012
Сообщений: 21
|
![]()
Доброе время суток.. помогите пожалуйста у меня есть 22-значное число.
в какой тип переменных его поместить? long long int записывает 19 чисел... unsigned long long 20... а вот что бы записать 22, я не знаю ![]() |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 14.03.2012
Сообщений: 139
|
![]()
Как в int'овую переменную записать понятия не имею, но если не найдёте решение, то запишите символьной строкой (если позволяет задача) или поразрядно в несколько int'ов
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 27.09.2012
Сообщений: 21
|
![]()
Понимаете, в задаче есть три переменных и нужно вывести наибольшее, проблема только в том что там стоит что число не должно превышать pow(10,100) и для примера есть это число, и его нужно вывести, его не как не поделить(
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 14.03.2012
Сообщений: 139
|
![]()
Т.е. наибольшее число, возможное в задаче это 1 c сотней ноликов?
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 27.09.2012
Сообщений: 21
|
![]() |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
![]()
pavelitel
ввели например 189285 283 4958439238923098349024 оно вывело 4958439238923098349024 можно либо работать со строками, поскольку у тебя не требуется каких либо арифметических действий. сравнивать сначала длины строк, при совпадении - сами строки. или, если по-суръезному - использовать любую из библиотек длинных чисел (или написать свою)
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 14.03.2012
Сообщений: 139
|
![]()
ну так можно сделать ввод в строку,
потом считывать длину строки (с помощью ф-ции strlen), затем вывести самую длинную строку в случае если она такая одна, а если 2 и более строки одинаковой длины, то сравнивать первые элементы, переводя их в int'овые переменные. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 27.09.2012
Сообщений: 21
|
![]()
а как сравнить первые элементы переводя их в int?
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
ничего в int не нужно переводить. '9' - '5' == 9 - 5, т.е. вполне можно сравнивать и символы между собой. Алгоритм сравнения банальный, как в школе столбиком считали (сравнение разрядов справа налево). Если не рассматривать отрицательные числа и записывать их в строку задом-наперёд, то и strcmp успешно сравнит числа одинаковой длины.
ЗЫ. Можно заморочиться на тему сравнения: 00000000000005 vs 10000000000005. Оптимизация в первоначальном сравнении длин тут уже выдаст неверный результат. |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 14.03.2012
Сообщений: 139
|
![]() Код:
Последний раз редактировалось Blind Guard; 27.11.2012 в 11:04. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запись большого фрагмента текста в таблицу БД | Esigns | SQL, базы данных | 4 | 22.07.2012 22:49 |
Факториал большого числа | Аруми | Помощь студентам | 2 | 08.11.2011 14:48 |
Перевод в строку большого числа | RIO | Общие вопросы C/C++ | 0 | 23.05.2010 23:51 |
Запись в один файл большого количества информации | pregmatch | Общие вопросы C/C++ | 5 | 09.03.2009 14:09 |
Запись большого файла на 2-ва DVD | Rembo | Софт | 32 | 14.02.2009 16:02 |