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

Сколькими способами человек может попасть в магазин - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Скиньте интересные задания по ООП С++ http://www.cyberforum.ru/cpp-beginners/thread1252179.html
Добрый вечер, Начал изучать ООП - скиньте интересные задания с использованием ООП С++. Книжные задачки перерешал уже.
C++ Класс Rectangle: возвратить значения координат, длины, ширины и площади Реализовать класс Rectangle. Класс должен хранить координаты, а так же длину и ширину прямоугольника. Предусмотреть инициализацию данного класса через конструктор по умолчанию и с помощью координат двух противоположных вершин. Общими должны быть методы, которые возвращают координаты прямоугольника (x1, x2, y1, y2), длину, ширину, площадь, а также методы позволяющие изменять координаты, длину и... http://www.cyberforum.ru/cpp-beginners/thread1252165.html
C++ Решение нелинейных уравнений методом простой итерации
Решение нелинейных уравнений методом простой итерации. Реализовать заданный алгоритм для уравнения , решив уравнение с заданной пользователем точностью.
C++ Перегрузка оператора + в одномерном массиве
Требуется сцепить два одномерных массива в один mnog operator+(const mnog &R){ int k = size + R.size; //размер нового массива int r = 0; mnog mnogestvo3(k);//создание объекта (новый массив) for (int i = 0; i < size; i++){ mnogestvo3(r) = m; r++; } for (int i = 0; i < R.size; i++){
C++ Удаление переменной структуры http://www.cyberforum.ru/cpp-beginners/thread1252143.html
Здравствуйте! Можете пожалуйста объяснить как удалить переменную структуры study1? Смотрел похожие темы и по существу ничего не нашел. struct study { char namef; char sname; int rate; int group; int numgeo;
C++ Флаги форматирования в cout, выравнивание справа Вот код. Я установил флаг форматирования райт. Поток перегружен и на консоль выводится площадь и периметр, вот только они нисколько не справа. Почему не работает? Rectangle var1(-2,-2,-2,2,2,2,2,-2); cout.setf(ios::right); //formatting flag cout << var1 << endl; подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
3039 / 1684 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
08.09.2014, 09:48     Сколькими способами человек может попасть в магазин
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/////////////////////////////////////////////////////////////////////////////////////////
//МАГАЗИН
//
//На расстоянии N шагов от магазина стоит человек. Каждую минуту он выбирает, куда сделать шаг: 
//к магазину или в противоположном направлении.
//
//Требуется написать программу, которая определит, сколькими способами он может попасть в магазин, 
//пройдя ровно K шагов и оказавшись в магазине только после выполнения последнего шага.
//
//ВХОДНЫЕ ДАННЫЕ
//
//Входной файл INPUT.TXT содержит 2 числа n и k, записанные через пробел. Известно, что 1 <= N <= K <= 37.
//
//ВЫХОДНЫЕ ДАННЫЕ
//
//Выходной файл OUTPUT.TXT должен содержать одно число – количество способов попадания в магазин.
//
//Примеры
//INPUT.TXT OUTPUT.TXT
//2 4 ________________ 2
//5 5 ________________ 1
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <map>
#include <utility>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::pair   < int,                      int         >   T_dist_and_steps_count;
typedef long long                                               T_variants;
typedef std::map    < T_dist_and_steps_count,   T_variants  >   T_variants_for_dist_and_steps_count;
/////////////////////////////////////////////////////////////////////////////////////////
T_variants  count_variants_for_distance_and_steps_count
    (
        int                                         distance,
        int                                         steps_count,
        T_variants_for_dist_and_steps_count     &   variants_for_dist_and_steps_count
    )
{
    if  (
            ( distance + steps_count ) % 2
        )
    {
        return  0;
    }
    else
    {
        auto    dist_and_steps_count    =   std::make_pair( distance, steps_count );
 
        if  (
                    variants_for_dist_and_steps_count.find  ( dist_and_steps_count )
                ==  variants_for_dist_and_steps_count.end   ()
            )
        {
                variants_for_dist_and_steps_count[ dist_and_steps_count ]
            =   distance    ==  0
                    ?   0
                    :   distance    ==  steps_count
                            ?   1
                            :       count_variants_for_distance_and_steps_count
                                        (
                                            distance        -   1,
                                            steps_count     -   1,
                                            variants_for_dist_and_steps_count
                                        )
 
                                +   count_variants_for_distance_and_steps_count
                                        (
                                            distance        +   1,
                                            steps_count     -   1,
                                            variants_for_dist_and_steps_count
                                        );
        }//if
 
        return  variants_for_dist_and_steps_count[ dist_and_steps_count ];
    }//else
}
/////////////////////////////////////////////////////////////////////////////////////////
int     main()
{
    for(;;)
    {
        T_variants_for_dist_and_steps_count     variants_for_dist_and_steps_count;
 
        std::cout   <<  "n = ";
        int     n   =   0;
        std::cin    >>  n;
 
        std::cout   <<  "k = ";
        int     k   =   0;
        std::cin    >>  k;
 
        std::cout   <<  count_variants_for_distance_and_steps_count
                            (
                                n,
                                k,
                                variants_for_dist_and_steps_count
                            )
 
                    <<  std::endl
                    <<  std::endl
                    <<  std::endl;
    }//for
}
 
Текущее время: 15:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru