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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выделение памяти под новый объект http://www.cyberforum.ru/cpp-beginners/thread128963.html
Люди, посоветуйте, пожайлуста, как в уже созданный массив из N объектов добавить ещё один объект? Преподаватель сказал, что просто надо выделить память под этот объект. Я поняла, что надо снова выделить память на N+1 объект; скопировать существующие N объектов + 1 новый; освободить старую память........................................Только не понимаю, как программно скопировать в выделенную...
C++ STL привет.спасибо одному новичку:gwink:, но я ничего не смогла объяснить :O_O:, когда ПРЕПОД меня начал спрашивать((( что надо исправить во второй части программы чтобы выполнилось условие задачи!!!! //Дан текст. Вывести на экран в алфавитном порядке согласные буквы, //которые входят в каждое нечетное слово и не входят ни в одно четное слово; гласные //буквы, входящие только в одно слово.... http://www.cyberforum.ru/cpp-beginners/thread128961.html
C++ Граф, нужно переделать код
Задание: Нахождение К путей Минимальной суммарной длины Во взвешенном графе с неотрицательными весами(Алгоритм Йена). Есть код на Microsoft Visual C++ 6.0 надо переделать его под 2008 и еще доделать этот код не с ошибками. #include<iostream.h> #include<string.h> #include<stdio.h> #include<stdlib.h> #include<conio.h> #define word unsigned int
Создать типизированный файл f и заполнить его N целыми числами... C++
ПОмогите?) Создать типизированный файл f и заполнить его N целыми числами (число N задаётся пользователем), полученными с помощью генератора случайных чисел. Выполнить сортировку чисел в файле по возрастанию. Найти числа, которые встречаются в файле наибольшее число раз. код с++
C++ Вывести в алфавитном порядке слова, которые присутствуют либо в первой строке, либо во второй, но не в обеих сразу. http://www.cyberforum.ru/cpp-beginners/thread128937.html
Задачка: Даны две строки. Вывести в алфавитном порядке слова, которые присутствуют либо в первой строке, либо во второй, но не в обеих сразу. помогите) код с++
C++ Дана квадратная матрица. Найдите ... Есть такая задача) Дана квадратная матрица. Найдите в каждой её строке наименьший элемент и вычтите его из всех элементов строки. Затем найдите в каждом столбце наименьший элемент и вычтите его из всех элементов столбца. Проверьте, верно ли, что после данных преобразований в каждой строке и каждом столбце матрицы находится только один нулевой элемент. очень нужна) пожалуйста подробнее

Показать сообщение отдельно
M128K145
Эксперт С++
8286 / 3505 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
13.05.2010, 03:36
Факториал больших чисел
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include "Factorial.h"
int main()
{
    setlocale(LC_ALL, "Russian");
    
    Factorial *factorial = new Factorial();
    int fact;
 
    std::cout<<"Введите факториал:\n> ";
    std::cin>>fact;
    
    factorial->WriteFactorial(fact);
    
    delete factorial;
    system("pause");
    return EXIT_SUCCESS;
}
factorial.cpp
C++
1
2
3
4
5
6
7
8
9
10
class Factorial
{
public:
    void WriteFactorial(int);
protected:
private:
    void _Factorial(int);
    static const int n = 1500000;
    int mas[n];
};
Factorial.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <fstream>
#include "Factorial.h"
 
void Factorial::_Factorial(int factorial)
{
    int fact, i, zero = n - 1, index = n - 1;
    for(i = 0; i < n - 1; ++i)
        mas[i] = 0;
    mas[n - 1] = 1;
    for (fact = 2; fact <= factorial; ++fact)
    {
        while (mas[zero] == 0) --zero;
        for (i = zero; i >= index; --i)
            mas[i] *= fact;
        for (i = zero; i > index; --i)
            if (mas[i] >= 1000)
            {
                mas[i - 1] += mas[i] / 1000;
                mas[i] %= 1000;
            }
        if (mas[index] >= 1000)
        {
            mas[index - 1] += mas[index] / 1000;
            mas[index] %= 1000;
            index--;
            if (mas[index] >= 1000)
            {
                mas[index - 1] += mas[index] / 1000;
                mas[index] %= 1000;
                index--;
                if (mas[index] >= 1000)
                {
                    mas[index - 1] += mas[index] / 1000;
                    mas[index] %= 1000;
                }
            }
        } 
    }
}
 
void Factorial::WriteFactorial(int factorial)
{
    _Factorial(factorial);
    int i = 0;
    while (mas[i++] == 0);
    std::ofstream out("factorial.txt", std::ios::out);
    for (i -= 1; i < n; ++i)
    {
        if (mas[i] >= 100)
            out<<mas[i];
        else
            if (mas[i] < 10)
                out<<"00"<<mas[i];
            else
                out<<"0"<<mas[i];
    }
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru