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

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

Восстановить пароль Регистрация
 
Blood_zack
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 22
26.09.2013, 09:07     вычисления факториала #1
Составить программу для вычисления факториала числа. Найдите факториалы 4, 7, 10.
В С++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 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
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,309
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
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,309
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++

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11840 / 6819 / 771
Регистрация: 27.09.2012
Сообщений: 16,911
Записей в блоге: 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     вычисления факториала
Ответ Создать тему
Опции темы

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