Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.84/50: Рейтинг темы: голосов - 50, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 38
1

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

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

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста. Надо написать консольное приложение, При запуске программа просит ввести число, а после выводит его на экран.
Всем спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.12.2010, 20:27
Ответы с готовыми решениями:

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

Вычисление факториала
Нужно заставить программу выводить результат, но почему то не получается #include <stdio.h>...

Вычисление факториала
Написать функцию, которая возвращает факториал числа. Значение 0! принять равным 1 (0!=1!=1). Не...

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

26
Эксперт С++
5056 / 3116 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
30.12.2010, 20:30 2
А факториал тут при чём?
0
601 / 569 / 104
Регистрация: 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
3 / 3 / 0
Регистрация: 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
Эксперт С++
5056 / 3116 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
30.12.2010, 22:03 5
velgames, т.е. функции, по-вашему, вещь лишняя? Мда.....
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
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
3 / 3 / 0
Регистрация: 09.06.2010
Сообщений: 50
30.12.2010, 23:47 7
Цитата Сообщение от silent_1991 Посмотреть сообщение
velgames, т.е. функции, по-вашему, вещь лишняя? Мда.....
нет, но в такой маленькой программе я не вижу смысла.
0
Эксперт С++
5056 / 3116 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
30.12.2010, 23:55 8
velgames, странное у вас представление о функциях... Они используются не только для упрощения кода, но и чтобы выделить отдельные смысловые конструкции... Тот, кто мельком посмотрит на ваш код, скажет "так, тут у нас какой-то цикл, ищем какое-то произведение и выводим на экран", а тот, кто посмотрит на код ForEveRа или panicwassanoа, сразу поймёт, что ищем мы факториал.
0
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
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
55 / 59 / 14
Регистрация: 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
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 38
31.12.2010, 11:25  [ТС] 11
Блин, я как бы в си пока нуб, а вы мне тут расписываете коды) Мне просто нужно чтобы при запуске программы консоль просила ввести число, а после вычисляло его факториал. И всё! Желатьельно с пояснениями.
Спаасибо

Добавлено через 2 минуты
Блин, я как бы в си пока нуб, а вы мне тут расписываете коды) Мне просто нужно чтобы при запуске программы консоль просила ввести число, а после вычисляло его факториал. И всё! Желатьельно с пояснениями.
Спаасибо
0
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
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
55 / 59 / 14
Регистрация: 26.11.2010
Сообщений: 192
31.12.2010, 11:33 13
не учли это:
C++
1
2
3
4
if (n <= 0)
     {
      cout<<endl<<"Nevernoe znachenie!!!";
     }
0
0 / 0 / 0
Регистрация: 15.12.2010
Сообщений: 38
01.01.2011, 12:33  [ТС] 14
Он почему-то у меня не работает. Вставляю код в программу, запускаю, а там куча ошбок(
Это точно для Консольного приложен C#??
--------------
С НОВЫМ ГОДОМ)
0
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
01.01.2011, 14:29 15
muromec, разве вы сказали что на с# надо?
И коды же,написано Код C++
0
131 / 108 / 12
Регистрация: 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;
}
0
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
01.01.2011, 17:40 17
Алексaндр, программа после завершения своей работы закрывается. Существуют функции которые осавляют открытой программы
0
131 / 108 / 12
Регистрация: 04.12.2010
Сообщений: 313
01.01.2011, 17:47 18
Так вот, в варианте ForEveR программа сразу после ввода числа закрывалась.
0
Freelance
Эксперт С++
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
01.01.2011, 17:58 19
Алексaндр, Настоятельно советую почитать следующую тему - https://www.cyberforum.ru/cpp-... 10807.html
0
131 / 108 / 12
Регистрация: 04.12.2010
Сообщений: 313
01.01.2011, 18:13 20
Ну так я по-этому и добавил getch() в код =))))
0
01.01.2011, 18:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.01.2011, 18:13
Помогаю со студенческими работами здесь

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

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

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

Вычисление двойного факториала
Помогите пожалуйста не как не пойму, само задание: Вычисление двойного факториала числа...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru