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

BigInteger(c++) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 60, средняя оценка - 4.72
jambas92
 Аватар для jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
26.11.2010, 20:48     BigInteger(c++) #1
Здравствуйте!!! Помогите составить программу которая вычесляет сумму двух больших цифр (до 10^100 степени). Пробовал через unsigned long long ничего не получаилось... Пробовал через char но он вместо символов выводит символы аски кода... Я знаю что нужно решить через char массив но не получается... Или хотя бы подкиньте идею (а лучше алгоритм) как это решить
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2010, 20:48     BigInteger(c++)
Посмотрите здесь:

функции класса BigInteger. C++
biginteger C++
Java SE BigInteger
C++ BigInteger
C# BigInteger в степени BigInteger
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
26.11.2010, 20:53     BigInteger(c++) #2
jambas92, Надо юзать длинную арифметику, пример
rrrFer
Заблокирован
26.11.2010, 20:59     BigInteger(c++) #3
школьный алгоритм. создаешь массив типа int, каждый элемент которого содержит 1 разряд числа.
Складываешь числа в столбик. Т.к. элемент массива является только 1 разрядом, значит что диапазон чисел там 0..9, поэтому правильнее вместо int использовать char.
Сложение двух больших чисел проще и быстрее выполнять в системе остаточных классов, читай СОК.
Там, во первых можно подобрать основания системы так чтобы вообще не пришлось создавать массив. Во вторых там нет переносов между разрядами.
Кстати, если кто-то знает как оптимально подобрать основание в СОК - напишите мне, я не нашел и не смог придумать

Добавлено через 5 минут
под подобрать так чтобы не пришлось вводить массив имею ввиду что наибольшее возможное число для выбранного основания это произведение чисел являющихся основанием. Так вот вручную можно выбрать основание чтобы произведение чисел основания было > 10^100.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
26.11.2010, 21:10     BigInteger(c++) #4
Есть готовые библиотеки для работы с большими числами. Зачем изобретать велосипед.
jambas92
 Аватар для jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
26.11.2010, 21:15  [ТС]     BigInteger(c++) #5
ДААА??? ДАЙ))))))
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
26.11.2010, 21:20     BigInteger(c++) #6
например http://www.arageli.org/download.html
Хотя я ей не пользовался. Я пользовался BigInteger library, но сейчас ее найти не смог. Попробуй сам поискать.
rrrFer
Заблокирован
26.11.2010, 21:20     BigInteger(c++) #7
Цитата Сообщение от gooseim Посмотреть сообщение
Есть готовые библиотеки для работы с большими числами. Зачем изобретать велосипед.
почти уверен что препод требует именно велосипед. Задание на массивы скорее всего
Если вы про СОК - то я таких не видел. Напрмер операция деления в СОК выполняется очень сложно, а как - не нашел. Зато пишут что в СССР была создана ЭВМ которая работала в СОК, и, вроде как, современные процессоры(когда искал информацию писали "современные процессоры Intel", сейчас, может быть, и не только Intel) используют СОК при выполнении операция над сверхбольшими числами. Операции сложения, вычитания, умножения там производятся в одно действие и без переносов между разрядами, а вот про деление и про дробные числа ничего не нашел, как и про выбор основания системы автоматически, а не вручную "навскидку".
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
26.11.2010, 21:21     BigInteger(c++) #8
rrrFer, а что такое СОК? Такое слово не знаю.
jambas92
 Аватар для jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
26.11.2010, 21:23  [ТС]     BigInteger(c++) #9
От нас препод требует что бы мы решили эту задачу классами))) Это вот последняя задача!!! И ни как не хочет выходить(((
rrrFer
Заблокирован
26.11.2010, 21:23     BigInteger(c++) #10
gooseim, читай выше
Цитата Сообщение от rrrFer Посмотреть сообщение
в системе остаточных классов, читай СОК.
HIMen
 Аватар для HIMen
4104 / 1353 / 39
Регистрация: 12.04.2009
Сообщений: 2,346
26.11.2010, 21:33     BigInteger(c++) #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
using namespace System;
#using <System.Numerics.dll>
using namespace System::Numerics;
 
int main()
{
    int a = 10;
    int b = 100;
    auto r = BigInteger::Pow(a, b); 
    Console::WriteLine(r);
    Console::ReadLine();
    return 0;
}
jambas92
 Аватар для jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
26.11.2010, 21:40  [ТС]     BigInteger(c++) #12
Народ!!! Мне нужно лишь обойти машину, контестер если кто знает... там такой тест!
ввод:222222222 123456788888
вывод:123679011110
можно как нибудь ее решить не использую библиотек BigInteger??? а просто с помощью char или atoi или atoll????
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2010, 22:45     BigInteger(c++)
Еще ссылки по теме:

BigInteger C++
C++ Biginteger и переменная
BigInteger в степени BigInteger C#

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

Или воспользуйтесь поиском по форуму:
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
26.11.2010, 22:45     BigInteger(c++) #13
Цитата Сообщение от jambas92 Посмотреть сообщение
ввод:222222222 123456788888
вывод:123679011110
можно как нибудь ее решить не использую библиотек BigInteger??? а просто с помощью char или atoi или atoll????
вообще все эти числа умещаются в 8 байт, так что проблем не должно быть.
Если больше 8 байт, то atoll, тем более atoi не поможет. с помощью char можно решить.
Кстати можешь посмотреть исходники по ссылке, что я дал, и оттуда скопировать что тебе нужно. Там как раз с классами.
Yandex
Объявления
26.11.2010, 22:45     BigInteger(c++)
Ответ Создать тему
Опции темы

Текущее время: 08:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru