Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
fizikpsix
1 / 1 / 0
Регистрация: 19.11.2014
Сообщений: 70
1

Где ошибка в коде?

20.05.2018, 14:53. Просмотров 74. Ответов 0
Метки нет (Все метки)

Если ввести:
5 1
1 2 3 4 5
То выводит:
1+2-3-4+5=1
А если ввести:
5 2
1 2 3 4 5
То выводит:
1-2+3+5-5=2
Хотя должен использовать только 1 2 3 4 5 и не повторять их самопроихвольно
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 <iostream>
using std::cout;
using std::endl;
using std::cin;
using std::string;
#include <string>
using std::to_string;
 
bool next(int *,int,int,int,int,string);
 
int main(){
    setlocale(LC_ALL, "rus");
    //Спрашиваем
    cout << "Укажите количество целых чисел и требуемый результат" << endl;
    int n, s;
    cin >> n >> s;
    int * m = new int[n];
    for(int i = 0; i < n; i++)
        cin >> m[i];
 
    //Рекурсивный поиск вариантов
    string strR = "";
    if(!next(m, 1, n, s, m[0], to_string(m[0])))
        cout << "Нет вариантов" << endl;
 
    delete[] m;
    system("pause");
    return 0;
}
 
bool next(int * m, int k, int n, int s, int sum, string strR){
    bool isOk = false;
    if(k == n && sum == s){
        cout << strR << "=" << s << endl;
        isOk = true;
    }else
    {
        for(int i = k; i < n; i++){
            isOk = isOk || next(m, k + 1, n, s, sum + m[i], strR + '+' + (m[i] >= 0 ? to_string(m[i]) : "(" + to_string(m[i]) + ')'));
            isOk = isOk || next(m, k + 1, n, s, sum - m[i], strR + '-' + (m[i] >= 0 ? to_string(m[i]) : "(" + to_string(m[i]) + ')'));
        }   
    return isOk;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2018, 14:53
Ответы с готовыми решениями:

Где ошибка в коде?
Написал код , в нем вводятся 15 чисел , числа входящие в диапозон от 0 до 10...

Где ошибка в коде
по запросу строки программа должна выдавать строку с увеличением на 2 .Например...

Где ошибка в коде ?
задача Треугольный ряд чисел : первое число 1 второе на 2 больше чем...

Где ошибка в коде?
Задание такое: Дан одномерный массив с большим количеством нулей. Заменить в...

Где то в коде ошибка
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #define TRUE 1 #define FALSE 0...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2018, 14:53

Где ошибка в коде?
Доброго времени суток! Я недавно начал учиться писать программы на С++,...

Ошибка где-то в коде
Не могу найти ошибку в коде. Выдает: недопустимо , правый оператор имеет тип...

где ошибка в коде
// Урок 9. C++ Игра Угадай число.cpp: определяет точку входа для консольного...


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

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

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