Форум программистов, компьютерный форум, киберфорум
Наши страницы

программа вычисления факториала любого числа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ метод бинарной вставки http://www.cyberforum.ru/cpp-beginners/thread723769.html
Дан массив записей, каждая из которых содержит следующую информацию: название государства, столица, количество жителей. Используя метод бинарной вставки, упорядочить массив записей по росту...
C++ Заменой одной из цифр числа на произвольную цифру найти число, делящееся на наибольшее количество своих цифр По каждому из некоторого количества натуральных чисел N, заменой одной из его цифр на произвольную цифру(если возможно) найти число, делящееся на наибольшее количество своих цифр. http://www.cyberforum.ru/cpp-beginners/thread723757.html
Перегрузка функций C++
Здравствуйте ув. программисты не могли бы мне кто нибуть написать простейшие примеры перегрузки +, -, логичное или , и умножения.
C++ Как вызвать метод из указателя на вектор пользовательского типа?
#include <iostream> #include <vector> #include <string> using namespace std; struct Client { vector <string> login; vector <string> password; vector <int> access; void output()
C++ страусиная ферма http://www.cyberforum.ru/cpp-beginners/thread723708.html
Уважаемые программисты! Помогите, пожалуйста, решить такую задачку. Сам пробовал, но не получилось (получается уравнение с двумя неизвестными N и M, а такое решить нельзя). Буду очень благодарен....
C++ Объясните решение задачи (ряд Тейлора) Вычислить и вывести на экран в виде таблицы значения функции, с помощью ряда Тейлора, на интервале от x-нач до x-кон с шагом dx с точностью eps. Таблицу снабдить заголовком и шапкой. Каждая строка... подробнее

Показать сообщение отдельно
elena3
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 5
15.01.2013, 13:40  [ТС]
Ребята, кого заинтересовала моя программа, скидываю вам её
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
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <iostream> 
#include <string>
#include <fstream>
//#include "fl.h"
 
using namespace std;
 
 
void multiply(vector<int> &result, int number);
 
void multiply(vector<int> &result, int number) // функция для перемножения 2х чисел
                                               // записываем поразрядно в вектор: десятки сотни и так далее 
                                               // и увеличиваем размер вектора
                                               // пока последний элемент больше 9ки
                                               // (т.е. есть десятки сотни и все такое)
{
    transform(result.begin(), result.end(), result.begin(), bind2nd(multiplies<int>(), number));
    for(vector<int>::size_type i = 0; i < result.size() - 1; i++) 
    {
        result[i + 1] += result[i] / 10; 
        result[i] %= 10;
    }
    while(result.back() > 9) 
    {
        result.push_back(result.back() / 10); 
        result[result.size() - 2] %= 10; 
    }
}
int main()
{
    int n;
    char str[256]; 
    int a;
    cout << "Factorial. Choose a method of input a number to calculate factorial" << endl;
    
    for ( ; ; )
    {
        cout << "1. Type using keyboard" << endl;
        cout << "2. Read from file" << endl;
        cin >> a;
        if (a == 1)
        {
            cout << "Enter the number: " ;
            cin >> n;
            break;
        }   
        else if (a == 2)
        {
            ifstream fact1; 
            fact1.open("input.txt"); 
                fact1 >> str; //считали строку шз файла(до разделяющего символа)
                    sscanf(str, "%d", &n);  //Cчитали число из строки. 
                                            //Исходя из выбранного метода считывания 
                                            //не требуется "защита от дурака" на ввод 
                                            //дробных чисел, для которых, как следует 
                                            //из определения, факториал так же 
                                            //не определен
            fact1.close(); // закрыли файл
            break;
        }
        else
        {
            cout << "You entered wrong number. Retry" << endl;
        }
    }
    ofstream fact2;
    fact2.open("output.txt"); // открыли файл вывода
    fact2 << "Factorial " << n << " = " ; // записали результат (подготовка)
    cout << "Factorial " << n << " = " ;  // вывели результат на экран (подготовка)
 
    vector<int> result(1, 1); // создали интовый вектор
    for(n; n > 0; multiply(result, n--)); // перемножаем числа - собсна сам факториал
    transform(result.rbegin(), result.rend(), ostream_iterator<char>(fact2), bind2nd(plus<int>(), '0')); // записали основное число в файл
    transform(result.rbegin(), result.rend(), ostream_iterator<char>(cout), bind2nd(plus<int>(), '0')); // вывели основное число на экран
 
    fact2.close(); // закрыли файл
    
    cout << endl; // << "Press Enter to exit" << endl;
    system("pause");
 
    return 0;
}
напоминаю, она работает на Visual Studio 2008
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru