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

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

Войти
Регистрация
Восстановить пароль
 
Blood_zack
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
#1

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

26.09.2013, 09:07. Просмотров 449. Ответов 6
Метки нет (Все метки)

Составить программу для вычисления факториала числа. Найдите факториалы 4, 7, 10.
В С++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2013, 09:07     вычисления факториала
Посмотрите здесь:

C++ Нерекурсионное вычисления факториала
Рекурсивная процедура вычисления факториала C++
C++ Напишите программу вычисления суммы: 1! + 2! + 3! + … + n!, используя функцию вычисления факториала числа k.
Рекурсивная функция вычисления факториала C++
программа вычисления факториала любого числа C++
C++ Написать функцию вычисления факториала
C++ Программа для вычисления факториала
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
scenotaph
120 / 120 / 15
Регистрация: 29.03.2013
Сообщений: 237
26.09.2013, 09:25     вычисления факториала #2
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
#include <iostream> 
  using namespace std; 
 
int main() {
    setlocale(0,"");
    int n;
    int fakt=1;
    cout <<"Введите число: ";
    cin>>n;
    if (n < 0) {
        cout<<"Error";
        system("pause");
        return 0;
    }
    if (n == 0) {
        cout<<fakt;
        system("pause");
        return 0;
    }
    if (n>0) {
        for (int i=1; i<=n; i++){
            fakt*=i;
        }
    }
    cout<<fakt;
    system("pause");
    return 0;
}
Ev[G]eN
Эксперт С++
5095 / 1533 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
26.09.2013, 10:42     вычисления факториала #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int factorial(unsigned);
 
int main()
{
    for (size_t i = 4; i <= 10; i += 3)
        std::cout << i << "!: " << factorial(i) << std::endl;
 
    return 0;
}
 
int factorial(unsigned userNumber)
{
    if (!userNumber || userNumber == 1) {
        return 1;
    } else {
        return userNumber * factorial(userNumber - 1);
    }
}
CheshireCat
Эксперт С++
2890 / 1239 / 78
Регистрация: 27.05.2008
Сообщений: 3,327
26.09.2013, 10:55     вычисления факториала #4
Ну вот еще в копилку:
C++
1
2
3
4
5
6
7
8
unsigned long factorial(unsigned long i)
{
    const unsigned long values[] = { 1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600ULL};
    if (i < sizeof(values)/sizeof(values[0]))
        return values[i];
        
    throw std::out_of_range("Can't calculate factorial");
}
StepaPair
2 / 2 / 1
Регистрация: 24.09.2013
Сообщений: 19
26.09.2013, 11:18     вычисления факториала #5
scenotaph

int fakt=1;

if (n == 0) {
cout<<fakt;
system("pause");
return 0;
}

В таком случае,для числа 0 факториал будет равен единице ( что, как мне кажется, не верно)
CheshireCat
Эксперт С++
2890 / 1239 / 78
Регистрация: 27.05.2008
Сообщений: 3,327
26.09.2013, 11:27     вычисления факториала #6
Верно. 0! равен 1 по определению.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2013, 11:58     вычисления факториала
Еще ссылки по теме:

Написать программу вычисления факториала C++
Функции для вычисления факториала C++
Функция для вычисления факториала C++
Функция вычисления факториала C++
C++ Рекурсивная функция вычисления факториала

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт CЭксперт С++
12699 / 7173 / 800
Регистрация: 27.09.2012
Сообщений: 17,683
Записей в блоге: 2
Завершенные тесты: 1
26.09.2013, 11:58     вычисления факториала #7
Для разнообразия:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
template < size_t num >
struct Factorial {
   enum {
      value = num * Factorial < num - 1 > :: value
   } ;
} ;
 
template <>
struct Factorial<0> {
   enum {
      value = 1
   } ;
} ;
 
int main() {
   std :: cout << Factorial < 4 > :: value << std :: endl ;
   std :: cout << Factorial < 7 > :: value << std :: endl ;
   std :: cout << Factorial < 10 > :: value << std :: endl ;
}
Yandex
Объявления
26.09.2013, 11:58     вычисления факториала
Ответ Создать тему
Опции темы

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