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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 60, средняя оценка - 4.72
jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
#1

BigInteger(c++) - C++

26.11.2010, 20:48. Просмотров 8443. Ответов 12
Метки нет (Все метки)

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

biginteger - C++
реализовать некоторые функции класса BigInteger, Используя перегрузку операторов. сдвиги длинного числа влево и вправо на заданное...

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

BigInteger - C++
Что это? Есть уже готовый класс со всякими функциями? Или просто каждое число BigInteger - это массив из цифр, и нужно самому все делать...

Biginteger и переменная - C++
Например есть такое : #include "BigIntegerLibrary.hh" BigInteger a = 65536; cout << (a * a * a * a * a * a * a * a); ...

функции класса BigInteger. - C++
Используя перегрузку операторов, реализовать некоторые функции класса BigInteger. class BigInteger { public: // максимальное...

Конструкторы и деструктор класса BigInteger - C++
Задание выглядит так. Определить класс BigInteger в файле BigInteger.h, который может быть использован для хранения больших...

12
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
26.11.2010, 20:53 #2
jambas92, Надо юзать длинную арифметику, пример
0
rrrFer
Заблокирован
26.11.2010, 20:59 #3
школьный алгоритм. создаешь массив типа int, каждый элемент которого содержит 1 разряд числа.
Складываешь числа в столбик. Т.к. элемент массива является только 1 разрядом, значит что диапазон чисел там 0..9, поэтому правильнее вместо int использовать char.
Сложение двух больших чисел проще и быстрее выполнять в системе остаточных классов, читай СОК.
Там, во первых можно подобрать основания системы так чтобы вообще не пришлось создавать массив. Во вторых там нет переносов между разрядами.
Кстати, если кто-то знает как оптимально подобрать основание в СОК - напишите мне, я не нашел и не смог придумать

Добавлено через 5 минут
под подобрать так чтобы не пришлось вводить массив имею ввиду что наибольшее возможное число для выбранного основания это произведение чисел являющихся основанием. Так вот вручную можно выбрать основание чтобы произведение чисел основания было > 10^100.
1
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
26.11.2010, 21:10 #4
Есть готовые библиотеки для работы с большими числами. Зачем изобретать велосипед.
0
jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
26.11.2010, 21:15  [ТС] #5
ДААА??? ДАЙ))))))
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
26.11.2010, 21:20 #6
например http://www.arageli.org/download.html
Хотя я ей не пользовался. Я пользовался BigInteger library, но сейчас ее найти не смог. Попробуй сам поискать.
0
rrrFer
Заблокирован
26.11.2010, 21:20 #7
Цитата Сообщение от gooseim Посмотреть сообщение
Есть готовые библиотеки для работы с большими числами. Зачем изобретать велосипед.
почти уверен что препод требует именно велосипед. Задание на массивы скорее всего
Если вы про СОК - то я таких не видел. Напрмер операция деления в СОК выполняется очень сложно, а как - не нашел. Зато пишут что в СССР была создана ЭВМ которая работала в СОК, и, вроде как, современные процессоры(когда искал информацию писали "современные процессоры Intel", сейчас, может быть, и не только Intel) используют СОК при выполнении операция над сверхбольшими числами. Операции сложения, вычитания, умножения там производятся в одно действие и без переносов между разрядами, а вот про деление и про дробные числа ничего не нашел, как и про выбор основания системы автоматически, а не вручную "навскидку".
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
26.11.2010, 21:21 #8
rrrFer, а что такое СОК? Такое слово не знаю.
0
jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
26.11.2010, 21:23  [ТС] #9
От нас препод требует что бы мы решили эту задачу классами))) Это вот последняя задача!!! И ни как не хочет выходить(((
0
rrrFer
Заблокирован
26.11.2010, 21:23 #10
gooseim, читай выше
Цитата Сообщение от rrrFer Посмотреть сообщение
в системе остаточных классов, читай СОК.
0
HIMen
4137 / 1386 / 39
Регистрация: 12.04.2009
Сообщений: 2,346
26.11.2010, 21:33 #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;
}
0
jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
26.11.2010, 21:40  [ТС] #12
Народ!!! Мне нужно лишь обойти машину, контестер если кто знает... там такой тест!
ввод:222222222 123456788888
вывод:123679011110
можно как нибудь ее решить не использую библиотек BigInteger??? а просто с помощью char или atoi или atoll????
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
26.11.2010, 22:45 #13
Цитата Сообщение от jambas92 Посмотреть сообщение
ввод:222222222 123456788888
вывод:123679011110
можно как нибудь ее решить не использую библиотек BigInteger??? а просто с помощью char или atoi или atoll????
вообще все эти числа умещаются в 8 байт, так что проблем не должно быть.
Если больше 8 байт, то atoll, тем более atoi не поможет. с помощью char можно решить.
Кстати можешь посмотреть исходники по ссылке, что я дал, и оттуда скопировать что тебе нужно. Там как раз с классами.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2010, 22:45
Привет! Вот еще темы с ответами:

Бинарное возведение в степень числа типа BigInteger в степень Biginteger - C#
Здравствуйте. Не могу реализовать алгоритм бинарного возведения в степень. Есть 2 экземпляра BigInteger p,q. По методу Pow не...

BigInteger в степени BigInteger - C#
Возможно ли возвести переменную типа BigInteger в такую же? Метод ModPow отпадает из-за необходимости mod'a. Спасибо.

BigInteger в степени BigInteger - C#
Имеются переменные y,r,s,p типа BigInteger. Необходимо вычислить (y^r*r^s) % p. Какие предложения по поводу вычисления данной формулы? ...

BigInteger - Java SE
Всем доброго времени суток! Меня очень интересует использование класса BigInteger, точнее ввод длинных чисел с клавиатуры. Прошу...


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

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
26.11.2010, 22:45
Ответ Создать тему
Опции темы

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