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

Ввод и вычисление факториала. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Классы http://www.cyberforum.ru/cpp-beginners/thread222761.html
Помогите пожалуста решить задачу Создайте класс в соответствии с условием задачи. Определить функции-члены класса для вывода реализации требуемых действий. Инициализацию переменных проведите с помощью конструктора. Дано натуральное число n. Получите наименьшее натуральное число вида m^2, превосходящее n.
C++ Программно найти кнопку в flash'e, подкиньте идею) Пишу бота для одной браузерной игры, написанной на флеше. Собственно основную часть написал, все работает) Но есть одна проблема, в некоторый момент игры появляется окошко с неким сообщением и его нужно закрыть, чтоб игра продолжилась. Так вот я ни как не могу "найти" кнопку - "крестик", чтоб закрыть окошко. В игре есть другие кнопки для самого процесса игры, т.к. они большие и одного цвета, то я... http://www.cyberforum.ru/cpp-beginners/thread222751.html
Работа с файломи... C++
#include <iostream> #include <fstream> using namespace std; int main() { ifstream f("file.txt"); while (true) { int v;
Шаблоны проектирования C++
Шаблоны проектирования, их реализация на С++. Кто знает какие-то хорошие книги, поделитесь :)
C++ Сортировка строк http://www.cyberforum.ru/cpp-beginners/thread222704.html
есть матрица. нужно отсортировать ее по сторокам. Т.е. строки должны идти в порядке возрастания. Сравниваем строки по первому элементу. если первые элементы равны, значит вторые и т.д.
C++ Массив натуральных чисел Ребят, ну помогите, пожалуйста с программкой. Упорядочить массив натуральных чисел по неубыванию следующим способом: 1. сначала числа сортируются по последней цифре 2. затем числа сортируются по предпоследней цифре 3. т.д. Подсчитать количество умножений, делений, и перестановок элементов массива. подробнее

Показать сообщение отдельно
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
31.12.2010, 11:07     Ввод и вычисление факториала.
у меня программа для больший чисел,скажем !2000 или !4000
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <iostream>
#include <time.h>
#include <windows.h>
#include <math.h>
#include <D:\\alex\\head-files\\factorial.h>
using namespace std;
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)
            cout<<mas[i];
        else
            if (mas[i] < 10)
               cout<<"00"<<mas[i];
            else
                cout<<"0"<<mas[i];
    }
}
 
void Factorial::PrintFactorial(int factorial)
{
    _Factorial(factorial);
    int i = 0;
    while (mas[i++] == 0);
 
    for (i -= 1; i < n; ++i)
    {
        if (mas[i] >= 100)
            std::cout<<mas[i];
        else
            if (mas[i] < 10)
                std::cout<<"00"<<mas[i];
            else
                std::cout<<"0"<<mas[i];
    }
}
 
void main()
{
 
Factorial *factorial = new Factorial();
    int fact;
 
    std::cout<<"enter factorial:\n> ";
    std::cin>>fact;
 
    factorial->PrintFactorial(fact);
 
    delete factorial;
 
}


factorial.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef FACTORIAL_H_
#define FACTORIAL_H_
 
class Factorial
{
public:
    void WriteFactorial(int);
    void PrintFactorial(int);
protected:
private:
    void _Factorial(int);
    static const int n = 1500000;
    int mas[n];
};
 
#endif /* FACTORIAL_H_ */
 
Текущее время: 03:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru