Форум программистов, компьютерный форум, киберфорум
Наши страницы

Задача с факториалом - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите пож написать любую из программ на C++, выдающую:1. номер телефона заданного абонента; 2.фамилию и т.д. http://www.cyberforum.ru/cpp-beginners/thread571885.html
Дан файл, содержащий сведения о телефонах абонентов. Структура записи файла: фамилия и инициалы абонента, год установки телефона, номер телефона. Написать программу, выдающую: - номер телефона...
C++ Кодирование по Хаффману, C++ Закодируйте какой-нибудь символьный массив по Хаффману примера ради. http://www.cyberforum.ru/cpp-beginners/thread571883.html
C++ Создать шаблон класса типа стек
Помогите, пожалуйста. Необходимо создать шаблон класса типа стек. Я никак не пойму, как перегружать операторы, если у меня шаблон класса стек, производного от класса List. Был бы очень благодарен,...
C++ Для заданной матрицы A(m,n) найти её произведение на транспонированную к ней AA` в упакованном виде (так как результат - симметричная матрица)!
Здравствуйте! Условие задачи: Для заданной матрицы A(m,n) найти её произведение на транспонированную к ней AA` в упакованном виде (так как результат - симметричная матрица). Пожалуйста,...
C++ Программа (не нахотиn тип void) http://www.cyberforum.ru/cpp-beginners/thread571831.html
Вот написал программу с использованием классов и приминения конструктора и деструктора. При компиляции пишет что не объявлен тип void для класса Cat c вызовом метода данных (функции) Mauw()....
C++ Итератор "общего" типа. Хочу создать класс, который будет работать и итераторами на разные объекты (векторы, списки и т.д.) Единственное решение, которое могу придумать - это шаблонный класс. Но мне, в принципе, хватило бы... подробнее

Показать сообщение отдельно
diagon
Higher
1932 / 1198 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
12.05.2012, 11:18
Avazart, неэффективно.
ser4ega, нечестно.

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
#include <iostream>
#include <ratio>
#include <cstdint>
 
template < int i >
struct Factorial
{
    static const std::uint64_t value = i * Factorial< i - 1 >::value;
};
 
template <>
struct Factorial< 1 >
{
    static const int value = 1;
};
 
template < int i >
class Sum
{
private:
    typedef std::ratio < i, Factorial< i >::value > current;
 
public: 
    typedef std::ratio_add< current, typename Sum< i - 1 >::value > value;
};
 
template <>
class Sum< 1 >
{
public:
    typedef std::ratio< 1, 1 > value;
};
 
int main()
{
    typedef typename Sum< 20 >::value result_ratio;
    
    constexpr std::uint64_t num = result_ratio::num;
    constexpr std::uint64_t den = result_ratio::den;
    
    std::cout << num << "/" << den << std::endl;
    std::cout << "(" << static_cast< double > (num) / den << ")" << std::endl;
}
Результат: http://liveworkspace.org/code/d6a40f9fda8c3695b8c405af5ca562f6
;)
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.