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

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

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

BigInteger(c++) - C++

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

Здравствуйте!!! Помогите составить программу которая вычесляет сумму двух больших цифр (до 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, Используя перегрузку операторов. сдвиги длинного числа влево и вправо на заданное...

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, который может быть использован для хранения больших...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
2846 / 1783 / 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
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
26.11.2010, 21:10     BigInteger(c++) #4
Есть готовые библиотеки для работы с большими числами. Зачем изобретать велосипед.
jambas92
58 / 57 / 3
Регистрация: 18.11.2010
Сообщений: 315
26.11.2010, 21:15  [ТС]     BigInteger(c++) #5
ДААА??? ДАЙ))))))
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
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
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
26.11.2010, 21:21     BigInteger(c++) #8
rrrFer, а что такое СОК? Такое слово не знаю.
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
4126 / 1375 / 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
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 в степени BigInteger - C#
Имеются переменные y,r,s,p типа BigInteger. Необходимо вычислить (y^r*r^s) % p. Какие предложения по поводу вычисления данной формулы? ...

BigInteger - C++/CLI
Доброго времени суток!:) Ребята у кого есть рабочий пример BigInteger(Double)? Дайте посмотреть :) (на msdn - нет :( для С++ )

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

BigInteger - C#
добрый день, y не хочет вычислять корректное значение,и все время показывает значение 0,в чем может быть ошибка public static...

A * B, BigInteger - Java SE
Во входном файле INPUT.TXT записаны целые неотрицательные числа A и B по одному в строке (A &lt; 10^100, B &lt;= 10000). В выходной файл...


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

Или воспользуйтесь поиском по форуму:
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
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++)
Ответ Создать тему
Опции темы

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