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

Длинная арифметика - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.63
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
26.03.2011, 12:14     Длинная арифметика #1
Мне дали задание с вычеслениями длинной арифметики. С мысл в том что там все действия происходят с символьными масивами. Я так и не разобрался как это всё работает. Обьясните.
Миниатюры
Длинная арифметика  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2011, 12:14     Длинная арифметика
Посмотрите здесь:

Длинная арифметика C++
C++ Длинная арифметика
C++ Длинная арифметика
C++ Длинная арифметика
C++ Длинная арифметика
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
26.03.2011, 12:42     Длинная арифметика #2
Steam.dll, Смотри пример.

Добавлено через 12 минут
И еще пример

Добавлено через 13 минут
Длинный факториал, вот видиш, почти все уже у тебя есть, так-что тебе остаеться только реализовать вычитание в столбик, как в школе учили.
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
26.03.2011, 12:45     Длинная арифметика #3
у M128K145, по ссылке Длинный факториал, очень жесткая реализация )
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
27.03.2011, 16:01  [ТС]     Длинная арифметика #4
Помогите кто нибудь с заданием в вычеслении 100!-2в 100 степени через длинную арифметику . Немогу без примера.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
27.03.2011, 16:22     Длинная арифметика #5
Цитата Сообщение от Steam.dll Посмотреть сообщение
Немогу без примера.
Всмисле без примера ? А в посте #2 что по твоему ?
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
27.03.2011, 22:19  [ТС]     Длинная арифметика #6
Да я не разобрался там работать надо с символьными масивами. Потом через strrev их перевернуть и в столбик начать складывать и если число после сложения будет больше 9 то то остальное прибавлять к следуещему элементу но как обращатся к элементом символьного масива я незнаю сделал как и обычний массив компелятор ругается.Это я для себя что бы разобраться .а в задании факториал Я с ним не могу разобратся.

Добавлено через 2 часа 15 минут
И в примере масивы простые одномерные.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
27.03.2011, 22:21     Длинная арифметика #7
Цитата Сообщение от Steam.dll Посмотреть сообщение
И в примере масивы простые одномерные.
И что с этого ?
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
27.03.2011, 22:23     Длинная арифметика #8
Steam.dll, если вы говорите символьный массив то имеете введу это char s[]?
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
27.03.2011, 22:30  [ТС]     Длинная арифметика #9
да shar
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
27.03.2011, 22:31     Длинная арифметика #10
Steam.dll, Так это и есть одномерный масив.
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
27.03.2011, 22:36     Длинная арифметика #11
Steam.dll, если правильно понял то можете работать с символьным массивом так
C++
1
2
char s[10]="0123456789";
int n=s[4]-'0';
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
27.03.2011, 22:50  [ТС]     Длинная арифметика #12
Ну да но он числовой. Там n[i] i это элемент масива их сложить например n[i]=m[i]+d[i] в циклу это всё.
а вот если
C++
1
2
3
4
5
char a[100],b[100];
gets(a);
gets(b;
strrev(a);
strrev(b);
Перевернуть их задом наперёд чтобы , как в столбик с конца складывать , а как обратится к имменно какому то элементу в char ? И это просто сложить а мне задание надо сделать с факториалом там я вообще потерялся ведь через обычную функцию 100 факториал не тянет. Да и преподователь требует чтоб через эту арифметику длинную так еще и с char масивами.
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
27.03.2011, 22:54     Длинная арифметика #13
Steam.dll, порекомендовал бы использовать string вместо char[].

Добавлено через 35 секунд
будет проще.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
27.03.2011, 22:56     Длинная арифметика #14
Цитата Сообщение от Steam.dll Посмотреть сообщение
Ну да но он числовой. Там n[i] i это элемент масива их сложить например n[i]=m[i]+d[i] в циклу это всё.
Что мешает написать, к примеру такю вот функцию
C++
1
2
3
int char_to_int(const char ch){
  return ch - '0';
}
и проблемы как не было.
VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
27.03.2011, 23:55     Длинная арифметика #15
Вот еще пример еще с длинной арифметикой.

Простейшие арифметические операции перегружены, и возведение в степень, и факториал

Ссылка во вложении
Вложения
Тип файла: 7z slozh.7z (45.3 Кб, 31 просмотров)
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
28.03.2011, 19:05  [ТС]     Длинная арифметика #16
А как в этой программе факториал работает.Там всё функциях а какие действия в них невидно.

Добавлено через 3 часа 55 минут
Помогите кто нибудь сделать задание. Я уже измучался с ним . И почемуто кода факториал просто через функцию. Возводит только до 33. А далее 0 показывает.Почему так происходит?
VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
28.03.2011, 19:35     Длинная арифметика #17
Цитата Сообщение от Steam.dll Посмотреть сообщение
Возводит только до 33. А далее 0 показывает.
- > очевидно переполнение переменной


Цитата Сообщение от Steam.dll Посмотреть сообщение
А как в этой программе факториал работает.Там всё функциях а какие действия в них невидно.
т. е. в чьей программе?
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
28.03.2011, 19:42  [ТС]     Длинная арифметика #18
в вашей
C++
1
2
3
4
5
6
7
case '2':
            cout<<"\n\nВведите число n:  n = ";
            q1.scan();
            q3.factorial(q1);//<== это вроде как бы функция факториала
            cout << "\n P(n) = ";
            q3.print();
            break;
и я пробывал данные через double переменные выводить там число приблежонное получается к результату вашей программы но всё равно не похоже а int только до 33
VASSUV
MiThEoN
 Аватар для VASSUV
412 / 278 / 15
Регистрация: 31.10.2009
Сообщений: 403
Записей в блоге: 2
28.03.2011, 20:11     Длинная арифметика #19
Цитата Сообщение от Steam.dll Посмотреть сообщение
пробывал данные через double переменные выводить там число приблежонное получается к результату вашей программы но всё равно не похоже а int только до 33
У меня в программе свой тип данных! LongINT
C++
1
2
3
4
5
6
7
8
9
case '3':
    q1 = LongINT("100");
    q2 = LongINT("2");
    q2 = q2.power(q1);
    q1.factorial(q1);
    cout << "\n P(n) = ";
    q3 = q1 - q2;
    q3.print();
    break;
попробуйте так
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2011, 20:18     Длинная арифметика
Еще ссылки по теме:

C++ Длинная арифметика
Длинная арифметика C++

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

Или воспользуйтесь поиском по форуму:
Steam.dll
 Аватар для Steam.dll
3 / 3 / 0
Регистрация: 05.11.2010
Сообщений: 131
28.03.2011, 20:18  [ТС]     Длинная арифметика #20
А можно как нибудь без LongINT а то у меня компелятор ошибки выдаёт.

Добавлено через 2 минуты
И вот как мне с заданием 100! - 2 в 100 степени. А то я всё фигнёй старадаю а задание так и не сделал. Если с длинной арифметикой мне надо с масивами или через переменные?
Yandex
Объявления
28.03.2011, 20:18     Длинная арифметика
Ответ Создать тему
Опции темы

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