Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

Заранее благодарен!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2011, 17:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как записать число которое имеет 22 цифр (C++):

Как записать в массив число, вводимое сразу, если оно имеет больше 18 разрядов? - C++
Ребят, натолкните на мысль: как записать в массив число, вводимое сразу, если оно имеет больше 18 разрядов?

Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число 156, нужно получ - C++
Вобщем,если не сложно,именно саму функцию помочь написать,ибо я просто не могу понять:) Добавлено через 22 минуты вот так...

что здесь не так? (из промежутка [n; m] вывести число, которое имеет наибольшее делителей) - C++
из промежутка вывести число, которое имеет наибольше делителей код: # include &lt;iostream&gt; # include &lt;conio.h&gt; using namespace std; ...

Побитовые операции: в массиве определить число, которое не имеет пары, с использованием xor - C++
Добрый день. Возник такой вопрос. Дан одномерный массив чисел в котором у каждого числа есть пара кроме одного. Задание в том что бы найти...

Заменить данное число на число, которое получается из исходного записью цифр в обратном порядке - C++
Заменить данное натурально число на число, которое получается из исходного записью цифр в обратном порядке(например, дано число 156, нужно...

Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке - C++
1) Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке. Например, дано число...

15
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
20.06.2011, 17:07 #2
Используйте массивы, целочисленными типами такое невозможно сделать.
0
grizlik78
Эксперт С++
1967 / 1460 / 120
Регистрация: 29.05.2011
Сообщений: 3,020
20.06.2011, 17:09 #3
Для представления любого 22-значного, нужен тип, способный вместить хотя бы 74 бита.
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
20.06.2011, 17:11 #4
Максимально беззнаковое 64-х разрядное целое - это число http://www.cyberforum.ru/cgi-bin/latex.cgi?2^{64 - 1} = 18446744073709551615
В языках C/C++ нет целочисленных типов произвольного размера.
Можно использовать double, но при этом будут погрешности.
0
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
20.06.2011, 17:13 #5
grizlik78, цифры 0-9 в 4 бита помещаются, цифр 22, 22*4=88. Не понял, почему 74?
0
grizlik78
Эксперт С++
1967 / 1460 / 120
Регистрация: 29.05.2011
Сообщений: 3,020
20.06.2011, 17:14 #6
Потому, что в 4 бита помещается не 10, а 16 цифр.
0
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
20.06.2011, 17:15 #7
__int128 в помощь, тип вроде появился начиная со ms vc++ 2005
0
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
20.06.2011, 17:19 #8
grizlik78, чё то я всё-равно не верю. Можешь на коде показать, как например в bitset 74 битный запихать 22 цифры?
0
grizlik78
Эксперт С++
1967 / 1460 / 120
Регистрация: 29.05.2011
Сообщений: 3,020
20.06.2011, 17:21 #9
pito211, ты лучше скажи, сколько битов надо для хранения 19-разрядного десятичного числа, который вполне влезает себе в 64 бита
0
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
20.06.2011, 17:33 #10
а всё понятно, затупил
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 3
20.06.2011, 17:50 #11
xAtom, С 2005? 128? Вы ничего не перепутали часом?
0
Overt
2 / 2 / 0
Регистрация: 19.06.2011
Сообщений: 29
20.06.2011, 18:01 #12
Есть такой классный способ. Официальное его название "Длинная арифметика".
Идея заключается в разбиению любого числа на группы и записи его кусков в отдельные ячейки массива.
Реализовывал данный способ для нахождения 2^n
0
diagon
Higher
1930 / 1196 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
20.06.2011, 18:05 #13
Цитата Сообщение от Overt Посмотреть сообщение
Есть такой классный способ. Официальное его название "Длинная арифметика".
Идея заключается в разбиению любого числа на группы и записи его кусков в отдельные ячейки массива.
Реализовывал данный способ для нахождения 2^n
Способ классный, но никак не для человека, который пытается в целочисленные типы засунуть 22значное число =)
а 2^N это вроде проще, чем а+в(во всяком случае на acmp среди всех задач на длинную арифметику она самая легкая)
0
Overt
2 / 2 / 0
Регистрация: 19.06.2011
Сообщений: 29
20.06.2011, 18:07 #14
Цитата Сообщение от diagon Посмотреть сообщение
Способ классный, но никак не для человека, который пытается в целочисленные типы засунуть 22значное число =)
а 2^N это вроде проще, чем а+в
В чем беда? 22-значное число разбивается по группы 3х числе, и переносится в массив. Целочисленный. Проблем нет.

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

Дано натуральное число N. Найти наименьшее число М (N< M< 2N), которое делится на сумму цифр числа N (без оста - C++
Дано натуральное число N. Найти наименьшее число М (N&lt; M&lt; 2N), которое делится на сумму цифр числа N (без остатка). Если такого числа...

Написать программу, которая считывает число с клавиатуры и находит ближайшее справа число, которое равно сумме кубов своих цифр - C++
Написать программу, которая считывает число с клавиатуры и находит ближайшее справа число, которое равно сумме кубов своих цифр (например: ...

Дано натуральное число N (N <= 100). Построить натуральное число, состоящее из N цифр и содержащее только цифры 1 и 2, которое делится на 2N - C++
Дано натуральное число N (N &lt;= 100). Построить натуральное число, состоящее из N цифр и содержащее только цифры 1 и 2, которое делится на...

Как при помощи пяти цифр 2, знаков арифметических действий и скобок записать число 7? - C++
Достаточно известная задача по математике: как при помощи пяти цифр 2, знаков арифметических действий и скобок записать число 7? Это...


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

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

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