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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 46, средняя оценка - 4.65
muromec
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 38
30.12.2010, 20:27     Ввод и вычисление факториала. #1
Помогите пожалуйста. Надо написать консольное приложение, При запуске программа просит ввести число, а после выводит его на экран.
Всем спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2010, 20:27     Ввод и вычисление факториала.
Посмотрите здесь:

Си, вычисление факториала C++
C++ Вычисление факториала.
C++ Вычисление факториала числа
Вычисление факториала C++
C++ Вычисление факториала
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.12.2010, 20:30     Ввод и вычисление факториала. #2
А факториал тут при чём?
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
30.12.2010, 21:02     Ввод и вычисление факториала. #3
выводит факториал?
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
#include <stdio.h>
#include <conio.h>
 
 
int fact(int n);
 
int main()
{
    int number;
    printf("Please enter a number.\n");
    scanf("%d", &number);
    int factor = fact(number);
    printf("Result is %d.", factor);
    _getch();
    return 0;
}
 
int fact(int n)
{
    int res = 1;
    for (int i = 1; i <= n; ++i)
    {
        res *= i;
    }
 
    return res;
}
velgames
 Аватар для velgames
3 / 3 / 1
Регистрация: 09.06.2010
Сообщений: 50
30.12.2010, 22:01     Ввод и вычисление факториала. #4
Тоже,только без лишних функций
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
int main()
{
int res = 1,n;
cout<<"Введите число ";
cin >> n;
for(int i =1;i<=n;i++)
{
    res*=i;
}
cout << "\n Ответ: "<<res;
system("pause");
return 0;
}
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.12.2010, 22:03     Ввод и вычисление факториала. #5
velgames, т.е. функции, по-вашему, вещь лишняя? Мда.....
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
30.12.2010, 22:09     Ввод и вычисление факториала. #6
Стандартненько...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
int fact(int one)
{
    return one <= 1 ? 1 : one*fact(one-1);
}
 
int main()
{
    int a=0;
    std::cout<<"Enter numb: ";
    std::cin>>a;
    std::cout<<"factorial a is: "<< fact(a) <<'\n';
    return 0;
}
velgames
 Аватар для velgames
3 / 3 / 1
Регистрация: 09.06.2010
Сообщений: 50
30.12.2010, 23:47     Ввод и вычисление факториала. #7
Цитата Сообщение от silent_1991 Посмотреть сообщение
velgames, т.е. функции, по-вашему, вещь лишняя? Мда.....
нет, но в такой маленькой программе я не вижу смысла.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.12.2010, 23:55     Ввод и вычисление факториала. #8
velgames, странное у вас представление о функциях... Они используются не только для упрощения кода, но и чтобы выделить отдельные смысловые конструкции... Тот, кто мельком посмотрит на ваш код, скажет "так, тут у нас какой-то цикл, ищем какое-то произведение и выводим на экран", а тот, кто посмотрит на код ForEveRа или panicwassanoа, сразу поймёт, что ищем мы факториал.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
31.12.2010, 11:07     Ввод и вычисление факториала. #9
у меня программа для больший чисел,скажем !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_ */
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
31.12.2010, 11:20     Ввод и вычисление факториала. #10
Реализовано на Borland С++

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
#include <iostream.h>
#include <conio.h>
 
 
// функция по расчету факториала – рекурсивная функция
long double fact(int x)
{
    if(x == 1)
       return 1;
    else
       return x*fact(x-1);
}
 
int main()
{
    clrscr();
    int n;
    cout<<"Vvedite n: ";
    cin>>n;
    if (n <= 0)
     {
      cout<<endl<<"Nevernoe znachenie!!!";
     }
     else
     {
      cout<<"Faktorial ot n! = "<<n<<" = "<<fact(n);
     }
    getch();
    return 0;
}
muromec
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 38
31.12.2010, 11:25  [ТС]     Ввод и вычисление факториала. #11
Блин, я как бы в си пока нуб, а вы мне тут расписываете коды) Мне просто нужно чтобы при запуске программы консоль просила ввести число, а после вычисляло его факториал. И всё! Желатьельно с пояснениями.
Спаасибо

Добавлено через 2 минуты
Блин, я как бы в си пока нуб, а вы мне тут расписываете коды) Мне просто нужно чтобы при запуске программы консоль просила ввести число, а после вычисляло его факториал. И всё! Желатьельно с пояснениями.
Спаасибо
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
31.12.2010, 11:29     Ввод и вычисление факториала. #12
Так вот velgames же написал код,какой вы просите
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>//чтобы компилятор узнал что такое cin и cout
#include <stdio.h>//system
 
using namespace std;
 
int main()
{
int res = 1,n;//объявляем res=1(если 0 то ответ всегда нулем будет) и n
cout<<"Введите число ";
cin >> n;//Ввод n
for(int i =1;i<=n;i++)//цикл с единицы,если будет 0 то ответ будет нулем всегда.
{
    res*=i;//считаем факториал числа n
}
cout << "\n Ответ: "<<res;
system("pause");//что бы после завершения работы программа не закрылась,а закрылась только тогда,когда мы хотим:)
return 0;
}
Kenwood2010
48 / 59 / 7
Регистрация: 26.11.2010
Сообщений: 192
31.12.2010, 11:33     Ввод и вычисление факториала. #13
не учли это:
C++
1
2
3
4
if (n <= 0)
     {
      cout<<endl<<"Nevernoe znachenie!!!";
     }
muromec
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 38
01.01.2011, 12:33  [ТС]     Ввод и вычисление факториала. #14
Он почему-то у меня не работает. Вставляю код в программу, запускаю, а там куча ошбок(
Это точно для Консольного приложен C#??
--------------
С НОВЫМ ГОДОМ)
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
01.01.2011, 14:29     Ввод и вычисление факториала. #15
muromec, разве вы сказали что на с# надо?
И коды же,написано Код C++
Алексaндр
 Аватар для Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
01.01.2011, 14:45     Ввод и вычисление факториала. #16
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
int fact(int one)
{
 return one <= 1 ? 1 : one*fact(one-1);
}
int main()
{
 int a=0;
 std::cout<<"Enter numb: ";
 std::cin>>a;
 std::cout<<"factorial a is: "<< fact(a) <<'\n';
 return 0;
}
Странно, у меня не работает. Сразу выходит из программы.
Внёс некоторые изменения - заработало:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include<conio.h>
int fact(int one)
{
    return one <= 1 ? 1 : one*fact(one-1);
}
 
int main()
{
    int a=0;
    std::cout<<"Enter numb: ";
    std::cin>>a;
    if (a>0) std::cout<<"\nFactorial (a) is: "<< fact(a) <<"\n";
    else std::cout<<"\nError: a<=0 !";
    getch();
    return 0;
}
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
01.01.2011, 17:40     Ввод и вычисление факториала. #17
Алексaндр, программа после завершения своей работы закрывается. Существуют функции которые осавляют открытой программы
Алексaндр
 Аватар для Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
01.01.2011, 17:47     Ввод и вычисление факториала. #18
Так вот, в варианте ForEveR программа сразу после ввода числа закрывалась.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
01.01.2011, 17:58     Ввод и вычисление факториала. #19
Алексaндр, Настоятельно советую почитать следующую тему - http://www.cyberforum.ru/cpp-beginners/thread10807.html
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.01.2011, 18:13     Ввод и вычисление факториала.
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Алексaндр
 Аватар для Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
01.01.2011, 18:13     Ввод и вычисление факториала. #20
Ну так я по-этому и добавил getch() в код =))))
Yandex
Объявления
01.01.2011, 18:13     Ввод и вычисление факториала.
Ответ Создать тему
Опции темы

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