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

факториал пятью способами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Глобальная переменная для хранения вещественных чисел http://www.cyberforum.ru/cpp-beginners/thread608491.html
Объявите одну глобальную переменную для хранения вещественных чисел объемом 8 байт на платморфе х86 инициализируйте ее ненулевым значением и четыре глобальные переменные для хранения целых чисел в диапозоне и иниализируйте каждую из них нудевым значением
C++ S(f)=x-x^3/3!+x^5/5!-x^7/7!-x^11/11!+x^13/13! Вычислить: S(f)=x-x^3/3!+x^5/5!-x^7/7!-x^11/11!+x^13/13! http://www.cyberforum.ru/cpp-beginners/thread608487.html
C++ Зачем открывать файл как бинарный?
Здравствуйте! Зачем открывать файл как бинарный? Ведь от того, что мы скажем, что он бинарный, работа с ним никак не изменится!
Пропала кириллица в Visual Studio C++
Перестала сегодня выводится кириллица в Visual Studio 2010. Не могу понять в чем дело. Раньше етот код выводился без проблем#include <iostream> #include <Windows.h> using namespace std; int main() { SetConsoleCP (1251); SetConsoleOutputCP (1251); cout<<"Строка"<<endl;
C++ Нужно вывести на экран http://www.cyberforum.ru/cpp-beginners/thread608400.html
Помогите с программой, просто нужно вывести на экран шестиугольник!
C++ Определить прямоугольник, лежащий левее всех и ниже всех Дан массив прямоугольников со сторонами параллельными осями координат и структура с полями: координата верхнего левого угла, ширина, длина.Определить прямоугольник, который лежит левее всех и тот же что лежит ниже всех. Я не могу понять как именно определить прямоугольник, который лежит левее всех и ниже всех. Подскажите пожалуйста,кто знает подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
18.06.2012, 16:47     факториал пятью способами
Ну допустим 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
#include <iostream>
 
template<int N>
struct Fact
{
   static long long int apply()
   {
      return N * Fact<N - 1>::apply();
   }
};
 
template<>
struct Fact<0>
{
   static long long int apply()
   {
      return 1;
   }
};
 
int main()
{
   std::cout << Fact<5>::apply() << std::endl;
}
http://liveworkspace.org/code/262b9e...ac5502eca0cac6

Конечно с натяжкой, ибо та же рекурсия, но на шаблонах.

Добавлено через 1 минуту
Или так.
Сути не меняет.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
template<int N>
struct Fact
{
   static constexpr long long int value = N * Fact<N - 1>::value;
};
 
template<>
struct Fact<0>
{
   static constexpr long long int value = 1;
};
 
int main()
{
   std::cout << Fact<5>::value << std::endl;
}
 
Текущее время: 04:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru