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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 5.00
nikin94
1 / 1 / 0
Регистрация: 30.05.2011
Сообщений: 7
#1

Вставить между цифрами 1, 2,..., 8, 9 в данном порядке, знак одной из 4-х арифметических операций так, чтобы результат восьми послед-х операций =100 - C++

30.05.2011, 15:59. Просмотров 2405. Ответов 4
Метки нет (Все метки)

Вычисления проводятся слева-направо, ни одна операция не имеет приоритета.

Добавлено через 2 минуты
задача вынесла моск, прошу помочь
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2011, 15:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вставить между цифрами 1, 2,..., 8, 9 в данном порядке, знак одной из 4-х арифметических операций так, чтобы результат восьми послед-х операций =100 (C++):

Расставить знаки арифметических операций так, чтобы сошелся результат - C++
Разработать программу, отыскивающую такую расстановку знаков арифметических операций +, -, *, / вместо знака ? в выражении ((((1?2) ?...

В выражении вместо каждого знака вопрос записать знак одной из арифметических операций - C++
Ребят, помогите решить.. У самого идей вообще нет.. Подозреваю, что рекурсией, но хз как) Буду рад за любые советы т.д.) А лучше еще за...

Расставить среди цифр знаки арифметических операций и скобки, чтобы получить необходимый результат - C++
Собственно, вот задача: Вводится строка не более чем из 6 цифр и некоторое целое число R. Расставить знаки арифметических операций...

Перевод числа из одной системы счисления в другую и выполнение арифметических операций - C++
Написать программу: Числа по основанию 2 и 8. Выполнить операцию умножения.

Класс арифметических операций матрицы как на другую матрицу так и на число - C++
Описать класс,реализующий тип данных "вещественная матрица" и работу с ними.Класс должен реализовывать слудующие операции над матрицами: ...

В выражении расставить знаки арифметических операций, чтобы получилось заданное число - C++
В арифметическом выражении 1*2*3*4*5 вместо звездочек расставить арифметические операции + , - , * , / так, чтобы получилось число...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
DVJ
1 / 1 / 0
Регистрация: 30.05.2011
Сообщений: 14
30.05.2011, 16:20 #2
Числа участвуют все?
как само задание звучит, полностью?
0
nikin94
1 / 1 / 0
Регистрация: 30.05.2011
Сообщений: 7
30.05.2011, 18:34  [ТС] #3
Вставить между цифрами 1, 2, 3, 4, 5, 6, 7, 8 и 9, записанными именно в таком порядке, знак одной из четырех арифметических операций так, чтобы результат восьми последовательных операций равнялся 100. Вычисления проводятся шаг за шагом слева на право, причем ни одна операция не имеет приоритета.

Добавлено через 15 секунд
это полный текст
0
grizlik78
Эксперт С++
1911 / 1443 / 112
Регистрация: 29.05.2011
Сообщений: 3,001
30.05.2011, 19:27 #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
59
60
61
62
63
64
65
66
#include <iostream>
 
using namespace std;
 
enum { op_plus=0, op_minus, op_mul, op_div };
char op_sym[4] = { '+', '-', '*', '/' };
 
float func(int opcode, int a, int b)
{
    float result = a;
    switch(opcode)
    {
        case op_minus:
            result -= b;
            break;
        case op_mul:
            result *= b;
            break;
        case op_div:
            result /= b;
            break;
        case op_plus:
        default:
            result += b;
    }
    return result;
}
 
float get_result(int nums[9], int opcodes[8])
{
    float result = nums[0];
    for (int i = 0; i < 8; ++i)
        result = func(opcodes[i], result, nums[i+1]);
    return result;
}
 
void print_formula(int nums[9], int opcodes[8])
{
    for (int i = 0; i < 8; ++i)
        cout << nums[i] << " " <<op_sym[opcodes[i]] << " ";
    cout << nums[8] << " = " << get_result(nums, opcodes) << endl;
}
 
bool next_combination(int opcodes[8])
{
    int i = 0;
    while (i < 8 && opcodes[i] == op_div)
    {
        opcodes[i++] = op_plus;
    }
    if (8 == i)
        return false;
    ++opcodes[i];
    return true;
}
 
int main()
{
    int opcodes[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
    int nums[9] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    do {
        if ( get_result(nums, opcodes) == 100 )
            print_formula(nums, opcodes);
    } while (next_combination(opcodes));
    return 0;
}
2
nikin94
1 / 1 / 0
Регистрация: 30.05.2011
Сообщений: 7
30.05.2011, 23:52  [ТС] #5
благодарю, сейчас гляну

Добавлено через 7 минут
Фунциклирует. Еще раз спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2011, 23:52
Привет! Вот еще темы с ответами:

Программа с рекурсивной функцией (расставляет между заданными шестью цифрами знаки операций) - C++
Написать программу с рекурсивной функцией, которая расставляет между заданными шестью цифрами знаки операций: сложения, вычитания,...

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

Перегрузка арифметических операций - C++
Для соответствующего класса, перегрузить арифметические операции(+,-,*,/). При перезгузке арифметические действия должны выполняться...

Расставить знаки между цифрами так, чтобы получилось заданное число - C++
Помогите разобраться с алгоритмом. Вот задача: Имеются цифры 1, 2, 3, 4, 5, 6, 7, 8, 9. Необходимо расставить между ними любое...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.05.2011, 23:52
Ответ Создать тему
Опции темы

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