Форум программистов, компьютерный форум 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. Просмотров 2382. Ответов 4
Метки нет (Все метки)

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

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

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

Добавлено через 15 секунд
это полный текст
grizlik78
Эксперт С++
1908 / 1440 / 110
Регистрация: 29.05.2011
Сообщений: 2,995
30.05.2011, 19:27     Вставить между цифрами 1, 2,..., 8, 9 в данном порядке, знак одной из 4-х арифметических операций так, чтобы результат восьми послед-х операций =100 #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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2011, 23:52     Вставить между цифрами 1, 2,..., 8, 9 в данном порядке, знак одной из 4-х арифметических операций так, чтобы результат восьми послед-х операций =100
Еще ссылки по теме:

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

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

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

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

Калькулятор логических/арифметических операций(подробности внутри) - C++
1ый курс одного электротехнического вуза! Суть программы, которую нужно написать: Написать нужно на чистом Си Написать...

Класс длинная арифметика с поддержкой арифметических операций - C++
Кто-нибудь уже писал класс для работы с очень большими числами, с поддержкой операторов +-/*, если да, то дайте, пожалуйста, ссылку на код....


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

Или воспользуйтесь поиском по форуму:
nikin94
1 / 1 / 0
Регистрация: 30.05.2011
Сообщений: 7
30.05.2011, 23:52  [ТС]     Вставить между цифрами 1, 2,..., 8, 9 в данном порядке, знак одной из 4-х арифметических операций так, чтобы результат восьми послед-х операций =100 #5
благодарю, сейчас гляну

Добавлено через 7 минут
Фунциклирует. Еще раз спасибо
Yandex
Объявления
30.05.2011, 23:52     Вставить между цифрами 1, 2,..., 8, 9 в данном порядке, знак одной из 4-х арифметических операций так, чтобы результат восьми послед-х операций =100
Ответ Создать тему
Опции темы

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