Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2008, 21:37   #1
dosinho
 
Регистрация: 25.11.2008
Сообщений: 2
Вопрос Помогите решить задачу по С++

Не могу решить задачи по С++, помогите кто может. Буду очень благодарен.
Изображения
Тип файла: jpg 1.jpg (9.3 Кб, 131 просмотров)
Тип файла: jpg 2.jpg (8.2 Кб, 153 просмотров)
Тип файла: jpg 3.jpg (31.6 Кб, 159 просмотров)
dosinho вне форума Ответить с цитированием
Старый 29.11.2008, 13:33   #2
como
Форумчанин
 
Регистрация: 26.07.2008
Сообщений: 116
Радость

Цитата:
Сообщение от dosinho Посмотреть сообщение
Не могу решить задачи по С++, помогите кто может. Буду очень благодарен.
2-я тривиальна:
Код:
#include <iostream>

using std::cout;
using std::endl;

template <int n, int i>
struct is_divider
{
    enum { value = (n % i == 0) };
};

template <bool cond, typename T1, typename T2>
struct if_
{
    typedef T1 type;
};

template <typename T1, typename T2>
struct if_<false, T1, T2>
{
    typedef T2 type;
};

template <bool v>
struct val 
{
    enum { value = v };
};

template <int n, int i>
struct is_prime_rec
{
    enum
    {
        value = if_< (i * i <= n)
                   , if_< is_divider<n, i>::value
                        , val<false>
                        , is_prime_rec<n, i + 2> >::type
                   , val<true> >::type::value
    };
};

template <int n>
struct is_prime
{
    enum
    {
        value = if_< (n < 1)
                   , val<false>
                   , if_< (n < 4)
                        , val<true>
                        , if_< is_divider<n, 2>::value
                             , val<false>
                             , is_prime_rec<n, 3> >::type >::type >::type::value
    };
};

struct noop
{
    void operator()() {}
};

template <int n, int i>
struct print_primes_rec
{
    void operator()()
    {
        if (is_prime<i>::value)
            cout << i << endl;

        if_< (i < n)
           , print_primes_rec<n, i + 1>
           , noop >::type()();
    }
};

template <int n>
struct print_primes
{
    void operator()()
    {
        print_primes_rec<n, 1>()();
    }
};


int main()
{
    print_primes<100>()();
}
como вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу Hranitel Помощь студентам 11 09.10.2008 16:25
Помогите решить задачу на C++ TheWanderer Общие вопросы C/C++ 9 08.10.2008 21:16
Помогите решить задачу pantera_88.07 Общие вопросы C/C++ 2 21.02.2008 15:09
Помогите решить задачу. Shady Общие вопросы Delphi 7 10.11.2007 23:09