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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.88
qqq
Сообщений: n/a
#1

Задача на длинную арифметику - C++

05.06.2008, 14:44. Просмотров 2877. Ответов 5
Метки нет (Все метки)

нужно вычислить 100! + 2^100 (2 в степени 100) и в результате сохранить все цифры.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2008, 14:44     Задача на длинную арифметику
Посмотрите здесь:

Задача на длинную арифметику - C++
Доброе время суток. Помогите, пожалуйста, дана задача определить общую сумму от карандашей, фломастеров и ручек (Количество каждых не...

Задача на длинную арифметику - C++
Всем привет! Есть такая задача {deleted} на использовании длинной арифметики. Не получается её решить, кто-нибудь может помочь,...

Реализовать длинную арифметику - C++
Здравствуйте! Не подскажете как реализовывать длинную арифметику с числами? Т.е. нужно, чтобы выполнялись базовые арифметические...

Переделать в длинную арифметику - C++
Здравствуйте, возникла проблема с длинной арифметикой, подскажите пожалуйста как изменить эту задачу: #include <iostream> #include...

Как доделать длинную целочисленную арифметику? - C++
Операторы: сравнения присваивания, сложения, вычитания, левого и правого сдвига, деления, остатка, умножения, приведения к обычному целому,...

Реализовать длинную арифметику ассемблерными вставками - C++
привет всем, нужна помощь в освоении асм вставок, нужно написать длинную арифметику сложения, вычитание, умножение деление, т.е. это 4...

динамическое программирование и длинная рафиметика(не получается прикрутить длинную арифметику). - C++
#include <stdio.h> int rekursia(int K,int N); int main() { int K,N; long n; /*(freopen("input.txt","r",stdin);...

Задача на арифметику остатков - C++
Здравствуйте, есть задача : Срочно нужно посчитать факториал чила. Срочно! Сейчас же!!! Ну ладно хотя бы по модулю 10^9 + 7. Но...

Задача на адресную арифметику - C++
Добрий день. Допоможіть, будь ласка, вирішити такі завдання: Написати програму на мові Сі, яка складається з наступних дій: 1. Створення за...

Округлить число не используя вещественненную арифметику - C++
Здравствуйте, есть два int a и b Они принимают какие-либо значения, как можно округлить результат их деления не используя вещественненную...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,353
05.06.2008, 15:04     Задача на длинную арифметику #2
Нужно вычислить - вычисляй. В чем вопрос-то?
qqq
Сообщений: n/a
05.06.2008, 15:51     Задача на длинную арифметику #3
прошу!
лучше всего код но можно просто подскозать как сделать, а то чето немогу понять как решить
mikityak
617 / 22 / 3
Регистрация: 30.09.2007
Сообщений: 357
05.06.2008, 17:07     Задача на длинную арифметику #4
А калькулятор зачем те ?
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,353
05.06.2008, 21:54     Задача на длинную арифметику #5
Цитата Сообщение от qqq Посмотреть сообщение
лучше всего код но можно просто подскозать как сделать, а то чето немогу понять как решить
1. Лезешь в Гугл и ищешь класс для обработки ну оооооочень длинных целых чисел: CLongInt. То ли на CodeProject, то ли на CodeGuru.... короче, он есть
2. Подключаешь его в свой проект и устанавливаешь подходящую тебе разрядность.
3. Компилишь программу, запускаешь, пока она считает - пьешь кофе (чай, пиво, коньяк.... недостающее добавить по вкусу).
4. Радуешься полученному результату!

Вот результат расчета чисел Хэмминга:
(как, вы не знаете, что это такое? Гугл и Википедия вам в помощь.)
100000-th number is:
290142196707511001929482240000000000000
Execution time: 1 second.

1000000-th number is:
519312780448388736089589843750000000000000000000000000000000000000000000000000000000
Execution time: 7 seconds.

10000000-th number is:
1624410506383043182323921531175957503510853882059664086333567248332521160136820981279015541076660156
2500000000000000000000000000000000000000000000000000000000000000000000000000000000
Execution time: 133 seconds.

100000000-th number is:
1814014330961136353295334243069335458466963503370909792946250536671403515659313581838046786605422296
4635144914854949550271375442721368122191972041094311075107507067573147191502194201568268202614781694
6818595136490836162942005416114894699679995595053651728120955680200739341006998503970330059031581136
91518456912149989919601385875227049401605594538145621585911726469930727034807205200195312500
Execution time: 2786 seconds.

Celeron 2.4 512 Mb RAM, Win XP SP2.
Компилятор MSVC++ 7.1 (2003).
В общем, после подсчета стомиллионного числа за 46 минут мой энтузиазм стал потихоньку улетучиваться, ибо грубая прикидка показывает, что шагнуть еще на порядок до миллиарда можно, но придется уже очень-очень изрядно запастись терпением - часиков этак на двадцать... Короче, если есть энтузиасты - дерзайте! Задача решаемая. Я же пока пас....
gostt
Сообщений: n/a
05.06.2008, 22:42     Задача на длинную арифметику #6
вот така можно вычислить 100!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    int i,k,n=200a,[200];
for (i=0;i<n; i++ ) 
      a[i]=0; 
   a[0]=1;
   for(k=0; k<100;k++)
   {  for (i=0;i<n; i++)
       a[i]*=(k+1);
       for (i=0;i<n; i++)     
       {  a[i+2]+=(a[i]/100);
           a[i+1]+=(a[i]%100/10);
           a[i]%=10;
       }
   }
for (i=0;i<n; i++)
cout<<a[n-i-1];
Yandex
Объявления
05.06.2008, 22:42     Задача на длинную арифметику
Ответ Создать тему
Опции темы

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