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

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

Войти
Регистрация
Восстановить пароль
 
saxorok
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 6
#1

Существует ряд чисел. Вместо "?" вставить символы - C++

23.04.2013, 17:30. Просмотров 351. Ответов 3
Метки нет (Все метки)

Пожалуйста помогите дали задачу по циклам решить не могу.
вот условие :
существует ряд чисел ((((1?2)?3)?4)?5)?6 который равен 35 ;
надо вместо "?" вставить символы (-./.*.+);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2013, 17:30     Существует ряд чисел. Вместо "?" вставить символы
Посмотрите здесь:

Создать список из целых чисел. После каждого элемента, равного "х" вставить элемент, равный "у" - C++
Задача со стеком. Создать список из целых чисел. После каждого элемента,равного х вставить элемент,равный у. какое условие нужно поменять...

Задача "Натуральный ряд чисел" - C++
(Время: 1 сек. Память: 16 Мб) Натуральные числа записаны в строку без каких-либо разделителей. Начало этой строки имеет вид...

В этой программе создается "матрица" из секунд.Как мне первый ряд чисел (секунд) присвоить масиву? - C++
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include...

Определить длину каждого слова строки, и если она четная, то вставить в середину слова "aa", иначе "а" - C++
Помогите с программой, начал делать, ерунда какая то выходит.... #include<iostream.h> #include<stdlib.h> #include<conio.h> ...

Вставить между одинаковыми символами вставить " * " (звёздочку) (есть наброски) - C++
Доброго времени суток, у меня есть задание (Вставить между одинаковыми символами вставить " * " (звёздочку)). Программирую в MVS2012,...

Для массива из 10 чисел проверить, есть ли в нем два одинаковых числа и напечатать "да" или "нет" - C++
void check_same(const int* a) { for (const int* p = a; p < a + 9; p++) for (const int* q = p+1; q < a + 10; q++) ...

Заменить в строке символы ":" на ";" - C++
Задание следующее: в строке из n символов (задается из консоли) заменить все символы ":" символами ";". Проблема: программа завершает...

Удалить все символы от "I" до "N" - C++
Составить программу, которая вводит строку символов, выполняет ее обработку в соответствии с заданием и затем выводит результаты. ...

Разработать класс "Массив больших чисел", который состоит из объектов класса "Большие целые числа". Найти сумму элементов массива. - C++
Разработать класс "Массив больших чисел", который состоит из объектов класса "Большие целые числа". Найти сумму элементов массива. ...

Определить, существует ли путь от первой ко второй точке, состоящий из "0" - C++
Мне нужно решить задач две задачи: Задача № 1. Дан массив А(m x m), заполненный "1" и "0". С клавиатуры вводятся координаты i, j двух...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
23.04.2013, 18:57     Существует ряд чисел. Вместо "?" вставить символы #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
#include <iostream>
 
namespace my
{
    typedef int (*oper) (int, int );
 
    int sum( int a, int b )
    {
        return a + b;
    }
 
    int sub( int a, int b )
    {
        return a - b;
    }
 
    int mul( int a, int b )
    {
        return a * b;
    }
 
    int div( int a, int b )
    {
        return a / b;
    }
}
 
int main()
{
    my::oper opersf[] = { my::sum, my::sub, my::mul, my::div };
    char opersc[] = { '+', '-', '*', '/' };
 
    const int operCnt = 4;
    
    for( int i1 = 0; i1 < operCnt; ++i1 )
        for( int i2 = 0; i2 < operCnt; ++i2 )
            for( int i3= 0; i3 < operCnt; ++i3 )
                for( int i4 = 0; i4 < operCnt; ++i4 )
                    for( int i5 = 0; i5 < operCnt; ++i5 )
                    {
                        int value = opersf[i1](1,2);
                        value = opersf[i2]( value, 3);
                        value = opersf[i3]( value, 4);
                        value = opersf[i4]( value, 5);
                        value = opersf[i5]( value, 6);
 
                        if( value == 35 )
                        {
                            std::cout << "((((1" << opersc[i1] << "2)" << 
                                opersc[i2] << "3)" << opersc[i3] << "4)" << 
                                opersc[i4] << "5)" << opersc[i5] << "6=" << value << std::endl;
                        }
                    }
 
    system("pause");
    return 0;
}
Код
((((1+2)+3)*4)+5)+6=35
((((1+2)*3)*4)+5)-6=35
((((1*2)*3)*4)+5)+6=35
saxorok
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 6
23.04.2013, 19:33  [ТС]     Существует ряд чисел. Вместо "?" вставить символы #3
Спасибо а можно с Коментами а то я (дно ) не чего не понимаю )
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
23.04.2013, 21:44     Существует ряд чисел. Вместо "?" вставить символы #4
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
#include <iostream>
 
namespace my // Добавляем пространство имен, т.к. существует уже стандартная функция div() 
{
    typedef int (*oper) (int, int ); // Заводим тип - указатель на функцию, принимающую два целых и возвращающее целое
 
    int sum( int a, int b ) // Сложение
    {
        return a + b;
    }
 
    int sub( int a, int b ) // Вычитание
    {
        return a - b;
    }
 
    int mul( int a, int b ) // Умножение
    {
        return a * b;
    }
 
    int div( int a, int b ) // Деление
    {
        return a / b;
    }
}
 
int main()
{
    my::oper opersf[] = { my::sum, my::sub, my::mul, my::div }; // Массив функций + - * /
    char opersc[] = { '+', '-', '*', '/' }; // Символы действий
 
    const int operCnt = 4;
    
    // Перебираем все возможные операции
    for( int i1 = 0; i1 < operCnt; ++i1 )
        for( int i2 = 0; i2 < operCnt; ++i2 )
            for( int i3= 0; i3 < operCnt; ++i3 )
                for( int i4 = 0; i4 < operCnt; ++i4 )
                    for( int i5 = 0; i5 < operCnt; ++i5 )
                    {
                        int value = opersf[i1](1,2); // Начинаем вычислять значение...
                        value = opersf[i2]( value, 3);
                        value = opersf[i3]( value, 4);
                        value = opersf[i4]( value, 5);
                        value = opersf[i5]( value, 6); // ... вычислили
 
                        if( value == 35 ) // Если равно 35, то выводим формулу
                        {
                            std::cout << "((((1" << opersc[i1] << "2)" << 
                                opersc[i2] << "3)" << opersc[i3] << "4)" << 
                                opersc[i4] << "5)" << opersc[i5] << "6=" << value << std::endl;
                        }
                    }
 
    system("pause");
    return 0;
}
Надеюсь, всё понятно
Yandex
Объявления
23.04.2013, 21:44     Существует ряд чисел. Вместо "?" вставить символы
Ответ Создать тему
Опции темы

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