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

Кэширование рекурсии - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ чтение строки http://www.cyberforum.ru/cpp-beginners/thread341379.html
а не не ниче))
C++ Нужна помощь с классом Вот напечатал это: #include <iostream> #define maxN 10 //количество вершин using namespace std; class directed_graph { public: class directed_graph next; http://www.cyberforum.ru/cpp-beginners/thread341377.html
Правильно ли я написал? C++
Начал изучать С++. Книга "Язык программирования С++. Лекции и упражнения". Хочется узнать насколько правильно я пишу код. Вот два первых задания: #include <iostream> #include <locale> double astrUnits (double); int main() { setlocale(LC_ALL,"Rus");
C++ Расскажите пожалуйста про флаги
Доброго времени суток. Помогите пожалуйста разобраться с фалагми. Вот код: #include <iostream> #define ID_F 1001 #define ID_D 1002 #define ID_E 1003 using namespace std; int main() { int n = ID_F; if(n&ID_F)
C++ как можно ипользовать многомерный массив? http://www.cyberforum.ru/cpp-beginners/thread341343.html
Изучил массивы и стало интересно,как можно использовать многомерные массивы, в книги не написано про их использование а только упомянуто их существование.
C++ Использование указателя на объект шаблонного класса в шаблонном классе. Всем привет! Мне нужно реализовать граф. Начал с вершин и ребер, причем и ребра и вершины - шаблонные классы, для того чтобы и ребро и вершина могли содержать разные данные. В ребре указатели на 2 вершины. Класс вершины: template <class T> class Vertex { private: char* name; T data; подробнее

Показать сообщение отдельно
DoZZer_
11 / 11 / 1
Регистрация: 09.08.2011
Сообщений: 53
12.08.2011, 16:02     Кэширование рекурсии
Что-то накликал, только производительностью и удобством не блещет )

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
//
 
#include "stdafx.h"
#include <iostream>
 
using namespace std ;
 
int _tmain(int argc, _TCHAR* argv[])
{
 
    float w_iriska, w_mand, w_pryan, all_pres ;
    int iris_max, mand_max, pryan_max, ves;
 
    cout << "Введите вес ириски : " ; cin >> w_iriska ; cout << "Мандарин : " ; cin >> w_mand ; cout << "Пряник : " ; cin >> w_pryan ;
    cout << " Вес всего подарка : " ; cin >> all_pres ;
 
    if (w_iriska > 0 && w_mand > 0 && w_pryan > 0 && all_pres > 0) {} else {cout << "Не жадничать ! "; return 1; }
 
    iris_max = (int) all_pres / w_iriska ;          //задаю мах количество ирисок / мандарин / пряников, которые можно положить в данный общий вес по отдельности
    mand_max = (int) all_pres / w_mand ;
    pryan_max = (int) all_pres / w_pryan ;
 
    if(!iris_max && !mand_max && !pryan_max ) {cout << "Ваш общий подарок слишком мал, увеличьте общий вес. "; return 1 ;}
    
 
    for(int tek_iris = 0 ; tek_iris <= iris_max ; tek_iris++ )          //прохожу по элементам цикла, сравнивая их с общим весом
        for(int tek_mand = 0 ; tek_mand <= mand_max ; tek_mand++)
            for(int tek_pryan = 0, stopp = 0; tek_pryan <= pryan_max && !stopp ; tek_pryan++) //если больше - прекращаю ход по данной ветви
            { 
                ves = tek_iris * w_iriska + tek_mand * w_mand + tek_pryan * w_pryan ;
                if( ves >= all_pres ) 
                { 
                        if (ves == all_pres) 
                    { 
                        cout << "Вариант :  ирис: " << tek_iris << ", мандарин: " << tek_mand << ", пряник: " << tek_pryan << endl ;  //вывожу количество мандаринов и т.п.
                        stopp = 1 ;
                    }
                        else{ stopp = 1 ; }
                }
            }
 
 
        return 0;
}
Оцените что ли, полезно будет узнать свои ошибки)

Добавлено через 18 минут
З.Ы.: diagon, а у вас в этой рекурсии переменная Z вообще меняется? Или вы ее меняете из сохраненной матрицы в текстовике?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru