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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 46, средняя оценка - 4.65
muromec
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 38
#1

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

30.12.2010, 20:27. Просмотров 5739. Ответов 26
Метки нет (Все метки)

Помогите пожалуйста. Надо написать консольное приложение, При запуске программа просит ввести число, а после выводит его на экран.
Всем спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.12.2010, 20:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод и вычисление факториала. (C++):

Вычисление факториала - C++
В одном задании я столкнулся с факториал b(итое)=i/(i!) восклицательный знак это факториал я понял а вот как его обьявить в языке c++...

Вычисление факториала - C++
Написать программу, чтобы она циклически запрашивала ввод пользователем числа и считала его факториал до тех пор, пока пользователь не...

Вычисление факториала - C++
ребята помогите решить. составьте пожалуйста код!) а) (m+1)!

Вычисление факториала. - C++
Помогите пожалуйста решить задачу!! Язык С++ Дано натуральное число n. Написать программу, которая вычисляет факториал неотрицательных...

Вычисление факториала - C++
Нужно заставить программу выводить результат, но почему то не получается #include <stdio.h> #include <conio.h> int f(int); ...

Вычисление факториала - C++
Помогите пожалуйста вычислить факториал:

26
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
30.12.2010, 20:30 #2
А факториал тут при чём?
0
panicwassano
592 / 560 / 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;
}
1
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;
}
2
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
30.12.2010, 22:03 #5
velgames, т.е. функции, по-вашему, вещь лишняя? Мда.....
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,545
Завершенные тесты: 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;
}
1
velgames
3 / 3 / 1
Регистрация: 09.06.2010
Сообщений: 50
30.12.2010, 23:47 #7
Цитата Сообщение от silent_1991 Посмотреть сообщение
velgames, т.е. функции, по-вашему, вещь лишняя? Мда.....
нет, но в такой маленькой программе я не вижу смысла.
0
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
30.12.2010, 23:55 #8
velgames, странное у вас представление о функциях... Они используются не только для упрощения кода, но и чтобы выделить отдельные смысловые конструкции... Тот, кто мельком посмотрит на ваш код, скажет "так, тут у нас какой-то цикл, ищем какое-то произведение и выводим на экран", а тот, кто посмотрит на код ForEveRа или panicwassanoа, сразу поймёт, что ищем мы факториал.
0
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 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_ */
0
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;
}
0
muromec
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 38
31.12.2010, 11:25  [ТС] #11
Блин, я как бы в си пока нуб, а вы мне тут расписываете коды) Мне просто нужно чтобы при запуске программы консоль просила ввести число, а после вычисляло его факториал. И всё! Желатьельно с пояснениями.
Спаасибо

Добавлено через 2 минуты
Блин, я как бы в си пока нуб, а вы мне тут расписываете коды) Мне просто нужно чтобы при запуске программы консоль просила ввести число, а после вычисляло его факториал. И всё! Желатьельно с пояснениями.
Спаасибо
0
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 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;
}
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!!!";
     }
0
muromec
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 38
01.01.2011, 12:33  [ТС] #14
Он почему-то у меня не работает. Вставляю код в программу, запускаю, а там куча ошбок(
Это точно для Консольного приложен C#??
--------------
С НОВЫМ ГОДОМ)
0
AnonymC
1173 / 455 / 28
Регистрация: 23.06.2009
Сообщений: 6,341
Завершенные тесты: 1
01.01.2011, 14:29 #15
muromec, разве вы сказали что на с# надо?
И коды же,написано Код C++
0
01.01.2011, 14:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.01.2011, 14:29
Привет! Вот еще темы с ответами:

Вычисление факториала числа - C++
Написать программу, которая вычисляет факториал введенного с клавиатуры числа. (Факториалом числа n называется произведение целых чисел от...

Вычисление двойного факториала - C++
Помогите пожалуйста не как не пойму, само задание: Вычисление двойного факториала числа n!!=n*(n-2)*(n-4)*(n-6) и тд... Число n вводится с...

Вычисление факториала числа N - C++
Что надо написать в пропущенной строке? setlocale(LC_ALL, &quot;Russian&quot;); int N; int P=1; cout&lt;&lt;&quot;Input N: &quot;; cin&gt;&gt;N; ...

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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