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

Вычислить значение N! - C++

Восстановить пароль Регистрация
 
женечка91
 Аватар для женечка91
0 / 0 / 0
Регистрация: 06.12.2010
Сообщений: 37
28.09.2011, 20:20     Вычислить значение N! #1
Вычислить значение N!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NIch
 Аватар для NIch
399 / 310 / 27
Регистрация: 17.03.2010
Сообщений: 1,120
28.09.2011, 20:23     Вычислить значение N! #2
C++
1
2
3
4
5
6
7
8
// Рекурсия факториал
int FactorialRec (int n)
{
  if (n <= 1)
    return 1;
  else
    return n * FactorialRec(n - 1);
}
viktorrrr
42 / 42 / 1
Регистрация: 11.02.2010
Сообщений: 358
28.09.2011, 21:10     Вычислить значение N! #3
Цитата Сообщение от женечка91 Посмотреть сообщение
Вычислить значение N!
Женечка. да вы обалдели по ходу. Надо было сразу в профиль заглянуть, прежде чем начать делать для вас что-то. Ни здрасте ни до свидания, ни пожалуйста ни спасибо. Ни одна задача нормально не объяснена. Кстати, не я один уже возмущаюсь
-=ЮрА=-
Заблокирован
Автор FAQ
28.09.2011, 22:20     Вычислить значение N! #4
Цитата Сообщение от женечка91 Посмотреть сообщение
Вычислить значение N!
- факториал можно вычислить либо рекурсивно либо прямым переборов ниже привёл оба способа
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
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
 
//Факториал рекурсией
unsigned long fact1(unsigned long val)
{
    unsigned long ret = val;
    if(1 < (val--))
        ret *= fact1(val);
    return ret;
}
 
//Факториал перебором
unsigned long fact2(unsigned long val)
{
    unsigned long ret = val;
    while(1 < (val--))
        ret *= val;
    return ret;
}
 
 
 
int main()
{
    unsigned long num;
    do
    {
        printf("Enter number : ");
        scanf("%u",&num);
        printf("%u! (fact1) : %u\r\n",num,fact1(num));
        printf("%u! (fact2) : %u\r\n",num,fact2(num));
        printf("Press Y for new input\r\n");
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
Enter number : 6
6! (fact1) : 720
6! (fact2) : 720
Press Y for new input
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
28.09.2011, 22:24     Вычислить значение N! #5
Что ж, поиздеваемся...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
typedef unsigned long long ull_t;
 
template< ull_t N >
struct factorial
{
    static const ull_t value = N * factorial< N - 1 >::value;
};
 
template< >
struct factorial< 0 >
{
    static const ull_t value = 1;
};
 
int main()
{
    std::cout << factorial< 5 >::value << std::endl;
 
    return 0;
}
Искренне надеюсь, что женечка91 понесёт сдавать именно этот код. Может тогда она поймёт, что как она, так и к ней?
Yandex
Объявления
28.09.2011, 22:24     Вычислить значение N!
Ответ Создать тему
Опции темы

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