Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Jumper19
13 / 13 / 0
Регистрация: 27.12.2010
Сообщений: 83
#1

Как записать число которое имеет 22 цифр - C++

20.06.2011, 17:06. Просмотров 944. Ответов 15
Метки нет (Все метки)

Здравствуйте!
cin>>4958439238923098349024
cout<<-3689348814741910324

Как сделать чтобы число ввести и вывести было одинаковым!
Пробовал int __int64 and long long не помогает...
Как сделать?

Заранее благодарен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2011, 17:06     Как записать число которое имеет 22 цифр
Посмотрите здесь:

Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке C++
Сформировать число, которое будет состоять только из четных восьмеричных цифр исходного C++
C++ найти число, которое получено из N перестановкой его цифр в обратном порядке
C++ Написать программу, которая считывает число с клавиатуры и находит ближайшее справа число, которое равно сумме кубов своих цифр
C++ что здесь не так? (из промежутка [n; m] вывести число, которое имеет наибольшее делителей)
Как записать в массив число, вводимое сразу, если оно имеет больше 18 разрядов? C++
Ввывести новое число, которое получится после записи цифр числа в обратном порядке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
1924 / 1190 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
20.06.2011, 17:07     Как записать число которое имеет 22 цифр #2
Используйте массивы, целочисленными типами такое невозможно сделать.
grizlik78
Эксперт С++
1903 / 1435 / 109
Регистрация: 29.05.2011
Сообщений: 2,989
20.06.2011, 17:09     Как записать число которое имеет 22 цифр #3
Для представления любого 22-значного, нужен тип, способный вместить хотя бы 74 бита.
Nameless One
Эксперт С++
5767 / 3416 / 255
Регистрация: 08.02.2010
Сообщений: 7,441
20.06.2011, 17:11     Как записать число которое имеет 22 цифр #4
Максимально беззнаковое 64-х разрядное целое - это число http://www.cyberforum.ru/cgi-bin/latex.cgi?2^{64 - 1} = 18446744073709551615
В языках C/C++ нет целочисленных типов произвольного размера.
Можно использовать double, но при этом будут погрешности.
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
20.06.2011, 17:13     Как записать число которое имеет 22 цифр #5
grizlik78, цифры 0-9 в 4 бита помещаются, цифр 22, 22*4=88. Не понял, почему 74?
grizlik78
Эксперт С++
1903 / 1435 / 109
Регистрация: 29.05.2011
Сообщений: 2,989
20.06.2011, 17:14     Как записать число которое имеет 22 цифр #6
Потому, что в 4 бита помещается не 10, а 16 цифр.
xAtom
914 / 739 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
20.06.2011, 17:15     Как записать число которое имеет 22 цифр #7
__int128 в помощь, тип вроде появился начиная со ms vc++ 2005
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
20.06.2011, 17:19     Как записать число которое имеет 22 цифр #8
grizlik78, чё то я всё-равно не верю. Можешь на коде показать, как например в bitset 74 битный запихать 22 цифры?
grizlik78
Эксперт С++
1903 / 1435 / 109
Регистрация: 29.05.2011
Сообщений: 2,989
20.06.2011, 17:21     Как записать число которое имеет 22 цифр #9
pito211, ты лучше скажи, сколько битов надо для хранения 19-разрядного десятичного числа, который вполне влезает себе в 64 бита
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
20.06.2011, 17:33     Как записать число которое имеет 22 цифр #10
а всё понятно, затупил
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
20.06.2011, 17:50     Как записать число которое имеет 22 цифр #11
xAtom, С 2005? 128? Вы ничего не перепутали часом?
Overt
2 / 2 / 0
Регистрация: 19.06.2011
Сообщений: 29
20.06.2011, 18:01     Как записать число которое имеет 22 цифр #12
Есть такой классный способ. Официальное его название "Длинная арифметика".
Идея заключается в разбиению любого числа на группы и записи его кусков в отдельные ячейки массива.
Реализовывал данный способ для нахождения 2^n
diagon
Higher
1924 / 1190 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
20.06.2011, 18:05     Как записать число которое имеет 22 цифр #13
Цитата Сообщение от Overt Посмотреть сообщение
Есть такой классный способ. Официальное его название "Длинная арифметика".
Идея заключается в разбиению любого числа на группы и записи его кусков в отдельные ячейки массива.
Реализовывал данный способ для нахождения 2^n
Способ классный, но никак не для человека, который пытается в целочисленные типы засунуть 22значное число =)
а 2^N это вроде проще, чем а+в(во всяком случае на acmp среди всех задач на длинную арифметику она самая легкая)
Overt
2 / 2 / 0
Регистрация: 19.06.2011
Сообщений: 29
20.06.2011, 18:07     Как записать число которое имеет 22 цифр #14
Цитата Сообщение от diagon Посмотреть сообщение
Способ классный, но никак не для человека, который пытается в целочисленные типы засунуть 22значное число =)
а 2^N это вроде проще, чем а+в
В чем беда? 22-значное число разбивается по группы 3х числе, и переносится в массив. Целочисленный. Проблем нет.

А 2^100 ?
diagon
Higher
1924 / 1190 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
20.06.2011, 18:13     Как записать число которое имеет 22 цифр #15
Цитата Сообщение от Overt Посмотреть сообщение
В чем беда? 22-значное число разбивается по группы 3х числе, и переносится в массив. Целочисленный. Проблем нет.А 2^100 ?
В качестве массива проще использовать строки(выполнять над ними арифметические операции будет проблематично, но вряд ли это требуется)
И 2^1000, правда я поленился реализовывать отдельный алгоритм и сделал с помощью умножения длинного числа на короткое.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2011, 18:22     Как записать число которое имеет 22 цифр
Еще ссылки по теме:

Записать в файл то простое число, которое есть общим для всех чисел C++
Побитовые операции: в массиве определить число, которое не имеет пары, с использованием xor C++
Заменить данное число на число, которое получается из исходного записью цифр в обратном порядке C++
Для данного числа m найти наименьшее положительное целое число с суммой цифр m и которое делится m C++
C++ Наибольшее число, которое можно записать в переменную типа int

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

Или воспользуйтесь поиском по форуму:
Overt
2 / 2 / 0
Регистрация: 19.06.2011
Сообщений: 29
20.06.2011, 18:22     Как записать число которое имеет 22 цифр #16
Цитата Сообщение от diagon Посмотреть сообщение
В качестве массива проще использовать строки(выполнять над ними арифметические операции будет проблематично, но вряд ли это требуется)
И 2^1000, правда я поленился реализовывать отдельный алгоритм и сделал с помощью умножения длинного числа на короткое.
Есть цела длинная арифметика которая позволяет складывать, вычитать, умножать и делить, и все это реализовано на массивах.
Yandex
Объявления
20.06.2011, 18:22     Как записать число которое имеет 22 цифр
Ответ Создать тему
Опции темы

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