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

Нужно расставить между числами знаки + или - таким образом, чтобы получилось выражение, значение которого равно s и вывести его на экран - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ даление строки и столбца http://www.cyberforum.ru/cpp-beginners/thread329412.html
Помогите решить задачу: Дана прямоугольная целочисленная матрица. Удалить строку и столбец матрицы, на пересечении которых находится максимальный элемент.
C++ Сформировать массив из количества элементов столбца матрицы, больших числа n Дан двумерный массив.сформировать одномерный массив,каждый элемент которого равен количеству элементов соответсвующего столбца двумерного массива больших числа n. http://www.cyberforum.ru/cpp-beginners/thread329403.html
C++ Как перевести число в k системы счисления
Здравствуйте, не подскажите как можно перевести число в k системы счисления, то есть заранее неизвестную
Почему ноль не преобразуеться в string C++
Делаю преобразование из типа int или double в string и когда переменная int или double равна нулю то приходиться делать доп проверку чтобы в переменной string был ноль сейчас делаю так int i=0; string i_str; char szbuff;
C++ "error: expected unqualified-id at end of input" на ровном месте http://www.cyberforum.ru/cpp-beginners/thread329319.html
Собственно вот код - ничего сложного, пример элементарной вложенной косвенности: #include <iostream> using namespace std; int main(){ int xVar, *pIndicate, **qIndicate; xVar = 130;
C++ просто логарифм Доброго времени суток! Возникла небольшая проблема: как написать функцию log(a,x), вычисляющую логарифм x по основанию a. Это нужно для решения задачи которая на картинке. Заранее всем спасибо)) подробнее

Показать сообщение отдельно
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.07.2011, 18:08  [ТС]     Нужно расставить между числами знаки + или - таким образом, чтобы получилось выражение, значение которого равно s и вывести его на экран
Цитата Сообщение от CEBEP Посмотреть сообщение
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
#include <iostream>
bool pro(int * nums, int i, int sum, int s, char sign = 0)
{
    if ( i )
    {
        if(pro(nums, i - 1, sum + nums[i - 1], s, '+'))
        {
            std::cout << '+' << nums[i - 1];
            return true;
        }
        else if(pro(nums, i - 1, sum - nums[i - 1], s, '-'))
        {
            std::cout << '-' << nums[i - 1];
            return true;
        }
        return !true && !false;//for fun only
    }
    return s == sum;
}
 
int main()
{
    while(true)
    {
        int nums[24], n, s;
        std::cin >> n >> s;
        for (int i = 0; i < n; ++i)
            std::cin >> nums[i];
        if(!pro(nums, n, 0, s))
            std::cout << "No solution\n";
        else
            std::cout << std::endl;
    }
    return 0;
}
Во. решил

Добавлено через 52 минуты
кстати, там знак передаётся но он таки не нужен... просто рудимент...
Угу... Правда там вывод немного не соответствует формату(перед первым числом не может быть знака),
но это исправить не сложно. Спасибо за решение, вроде разобрался...
 
Текущее время: 20:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru