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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ФантомПамяти
0 / 0 / 0
Регистрация: 08.04.2015
Сообщений: 20
#1

Рекурсия: как выводить на экран только удовлетворяющие условия - C++

19.10.2015, 02:33. Просмотров 181. Ответов 2
Метки нет (Все метки)

Всем привет.

Есть код:

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
#include <iostream>
using namespace std;
 
int values[999] = {0};
int valuesCount = 0; //значения счетчика
 
void renting_search(int renting);
 
void main() {
    renting_search(110);
}
 
void renting_search(int renting) {
 
    for (int i = 0; i < valuesCount; i++) {
        cout << values[i] << ", ";
    }
 
    if (renting == 0) { //если сдача = 0 грн
        // print
        cout << "OK" << endl;
    }
 
    else {
        cout << endl;
        if (renting < 0) { //если сдача меньше нуля то выход из стека
 
            return;
        }
 
        if (renting > 100 || renting < 100) {//если сдача больше 100
            values[valuesCount++] = 100;
            renting_search(renting - 100);
            valuesCount--;
        }
        
        if (renting > 100 || renting < 100) {//если сдача больше 50 и меньше 100
            values[valuesCount++] = 50;
            renting_search(renting - 50);
            valuesCount--;
        }
 
        if (renting < 50 || renting > 50) {//если сдача больше 20 и меньше 50
            values[valuesCount++] = 20;
            renting_search(renting - 20);
            valuesCount--;
        }
 
        /*if (renting < 20 || renting > 20) {//если сдача больше 10 и меньше 20
            values[valuesCount++] = 10;
            renting_search(renting - 10);
            valuesCount--;
        }
 
        if (renting < 10 || renting > 10) {//если сдача больше 5 и меньше 10
            values[valuesCount++] = 5;
            renting_search(renting - 5);
            valuesCount--;
        }
 
        if (renting < 5 || renting > 5) {//если сдача больше 2 и меньше 5
            values[valuesCount++] = 2;
            renting_search(renting - 2);
            valuesCount--;
        }
 
        if (renting < 2 || renting > 2) {//если сдача больше 1 и меньше 2
            values[valuesCount++] = 1;
            renting_search(renting - 1);
            valuesCount--;
        }*/
    }
}
ЗЫ. Значение 110 произвольное, закомментировано для уменьшения времени компиляции.

До этого дошел, но не соображу:
1) как выводить на экран только удовлетворяющие условия (там, где ОК)
2) как сделать вывод только одного верного варианта, для меня расположение чисел не важно, т.е. 50 20 20 20 и 20 50 20 20 для меня едины.

Кодом не обязательно, мне бы подсказку! Всем спасибо заранее!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2015, 02:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсия: как выводить на экран только удовлетворяющие условия (C++):

Как выводить utf-8 на экран? - C++
Как у вас обстоят дела с выводом UTF-8 на консоль windows? UTF-16 она не поддерживает, но похоже что у нее (или у меня) и с UTF-8 проблемы....

Как правильно выводить переменную типа double на экран? - C++
Помогите, плиз, как правильно выводить переменную типа double на экран ?? У меня выводится какое-то непонятное число 292057083 вместо...

Как используя цикл и массивы вводить с клавиатуры фамилии и имена, и затем выводить их на экран? - C++
Как используя цикл и массивы вводить с клавиатуры фамилии и имена и затем выводить их на экран ? Народ помогите плиз, потому что я ничего...

Как можно сравнивать в структуре числа и выводить на экран по возрастанию, если структура находится в файле? - C++
Как можно сравнивать в структуре числа и выводить на экран по возрастанию, если структура находится в файле?

функции рекурсия (Введить первое, третье, пятое и т.д. с вивединих чисел. Завершальний ноль выводить не над) - C++
Дана последовательность натуральных чисел завершающийся числом 0.Введить первое, третье, пятое и т.д. с вивединих чисел. Завершальний ноль...

Подскажите как в quickreport выводить данные базы удовлетворяющие определенному условию? - Delphi БД
Подскажите как в QuickReport выводить данные базы удовлетворяющие определенному условию?

2
ФантомПамяти
0 / 0 / 0
Регистрация: 08.04.2015
Сообщений: 20
20.10.2015, 19:57  [ТС] #2
Никто не знает... (((
0
ФантомПамяти
0 / 0 / 0
Регистрация: 08.04.2015
Сообщений: 20
21.10.2015, 21:57  [ТС] #3
Вопрос актуален!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2015, 21:57
Привет! Вот еще темы с ответами:

Считывать имена файлов и выводить на экран только имя файла (вместо полного пути) - Bash
нужно считывать имена файлов и вывести на экран только имя файла а не полный путь

Написать программу-фильтр: при нажатии любых клавиш выводить на экран только буквы и цифры - Pascal ABC
помогите пожалуйста, срочно нужно Написать программу-фильтр, которая при нажатии любых клавиш выводит на экран только буквы и цифры, при...

Функция должна выводить несколько значений, но выводить только одно. Почему? - C++/CLI WinForms
Здравствуйте! Мне нужно создать рекурсивную функцию, которая выводит на экран все простые множители числа n (единицу не учитывать) в...

Как выводить только последние новости - PHP БД
Добрый день. У меня есть бд, на сайте блок с новостями. Как сделать, что-бы выводилось не больше 6 новостей? &lt;p...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru