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

В выражении расставить знаки так, чтобы результат вычислений был равен 35 - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
FienGer
0 / 0 / 0
Регистрация: 23.09.2013
Сообщений: 16
04.04.2014, 20:02     В выражении расставить знаки так, чтобы результат вычислений был равен 35 #1
В выражении (((( 1 ? 2 ) ? 3 ) ? 4 ) ? 5 ) ? 6 вместо каждого знака ? поставить знак одной из операций + , - , * , / так , чтобы результат вычислений был равен 35 .
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2014, 20:02     В выражении расставить знаки так, чтобы результат вычислений был равен 35
Посмотрите здесь:

C++ Расставить знаки арифметических операций так, чтобы сошелся результат
Нужно расставить между числами знаки + или - таким образом, чтобы получилось выражение, значение которого равно s и вывести его на экран C++
C++ Расставить на доске N ферзей так, чтобы они не били друг друга
Расставить арифметические знаки в выражении C++
C++ Заполнить матрицу так, чтобы элемент в нечетной строке был равен номеру столбца, а в четном — номеру строки
Расставить знаки между числами от 1 до 9, чтобы получить заданное число C++
Расставить среди цифр знаки арифметических операций и скобки, чтобы получить необходимый результат C++
Совместить два числа, чтобы НОД был равен 1 C++
C++ Заданы цифры - расставить знаки сложения и вычитания так, чтобы получилось выражение с заданным результатом
C++ В выражении расставить знаки арифметических операций, чтобы получилось заданное число
C++ Расставить знаки между цифрами так, чтобы получилось заданное число

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wlk
49 / 49 / 13
Регистрация: 07.12.2011
Сообщений: 133
04.04.2014, 20:18     В выражении расставить знаки так, чтобы результат вычислений был равен 35 #2
(((((1*2) *3) *4) +5) +6) = (2*3*4) + 11 = 24 + 11 = 35.
FienGer
0 / 0 / 0
Регистрация: 23.09.2013
Сообщений: 16
04.04.2014, 20:39  [ТС]     В выражении расставить знаки так, чтобы результат вычислений был равен 35 #3
знаки как поставить я знаю, мне надо программу чтобы сама проверяла и подбирала знаки
IrineK
Заблокирован
05.04.2014, 09:45     В выражении расставить знаки так, чтобы результат вычислений был равен 35 #4
Еще вариант
(((( 1 + 2 ) + 3 ) * 4 ) + 5 ) + 6 == 35
Этот уже найден программно)

Добавлено через 2 минуты
И еще один выловился:
(((( 1 + 2 ) * 3 ) * 4 ) + 5 ) - 6 == 35

Добавлено через 25 минут
Может расставлять знаки между 1,2,3,4,5,6, чтобы получить заданное wanted:

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
#include <iostream>
using namespace std;
 
int Result (char *sequence)
{   int a = 1, b = 2, res, i;
    char c;
 
    for (i = 0; sequence[i] != '\0'; i++)
    {   c = sequence[i];
        switch (c)
        {   case '+':   res = a+b;
                        break;
            case '-':   res = a-b;
                        break;
            case'*':    res = a*b;
                        break;
            case '/':   res = a/b;
                        break;
        }
        a = res;
        b++;
    }
    return res;
}
 
void Generate (char *res, char *seq)
{   int i = -1, j = -1;
    int num = 0;
    while (++i < 4)
        res[i] = '(';
    res[i] = ++num + 48;
    while (i < 20)
    {   res[++i] = seq[++j];
        res[++i] = ++num + 48;
        res[++i] = ')';
    }
    res[19] = '\0';
}
 
int main()
{   int i,j,k,m,n;
    int wanted = 35;
    char answer[30];
    char sequence[6];
    char *sign = "+-*/";
 
    for (i = 0; i<4; i++)
        for (j = 0; j<4; j++)
            for (k = 0; k<4; k++)
                for (m = 0; m<4; m++)
                    for (n = 0; n<4; n++)
                    {   sequence[0] = sign[i];
                        sequence[1] = sign[j];
                        sequence[2] = sign[k];
                        sequence[3] = sign[m];
                        sequence[4] = sign[n];
                        sequence[5] = '\0';
                        if (Result (sequence) == wanted)
                        {   Generate (answer, sequence);
                            cout << answer << '\n';
                        }
                    }
 
    cin.get();
    return 0;
}
С добрым утром )
Изображения
 
FienGer
0 / 0 / 0
Регистрация: 23.09.2013
Сообщений: 16
05.04.2014, 23:35  [ТС]     В выражении расставить знаки так, чтобы результат вычислений был равен 35 #5
Спасибо))
Буду разбираться)
Yandex
Объявления
05.04.2014, 23:35     В выражении расставить знаки так, чтобы результат вычислений был равен 35
Ответ Создать тему
Опции темы

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