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

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

Войти
Регистрация
Восстановить пароль
 
nedsi
2 / 2 / 0
Регистрация: 18.09.2013
Сообщений: 65
#1

Перебор возможных вариантов разреза трубы - C++

19.09.2013, 10:52. Просмотров 500. Ответов 7
Метки нет (Все метки)

Доброго времени суток! Есть задача:"Вводится длина трубы, количество заготовок (1 .. 5), которые можно вырезать из трубы, и длина каждой заготовки. Вывести все возможные варианты разреза трубы " Пример: 100 2 60 30
Ответ : "60" "30" "60 +30" "30 +30" "30 +30 +30".
Написал код:
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
// prog3.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int dt,kil,dz[5],min = 3000000,max = 0;
    
    cout<<"dovzhuna trybu = "; cin>>dt;
    cout<<endl<<"kilkist zagotovok = "; cin>>kil;
    cout<<endl<<"vvedit dovzhuny zagotovok : "<<endl;
    for (int i =0; i<kil;i++)
    {
        cout<<endl<<"dovzhuna zagotovku "<<i+1<<" = "; cin>>dz[i];
        if (max<dz[i]) max = dz[i];
        if (min>dz[i]) min = dz[i];
    }
    cout<<"max = "<<max;
    cout<<"min = "<<min;
    cout<<endl<<"************result************";
 
    for (int i = 0; i<kil; i++)
        if (dz[i]<dt) cout<<dz[i]<<"";
    for (int i = min; i<max; i=i+min)
        for (int j = min; j<max; j=j+min)
        {
            //пробовал через 2 цикла, не получается 
        }
    system("pause"); 
    return 0;
}
Никак не могу придумать как организовать цикл, прошу помощи.
P.S. ПРОШУ ВАС, НЕ ПИСАТЬ ПОЛНЫЕ ПРОГРАММЫ. И вам меньше работы и мне приятно.Благодарю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2013, 10:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перебор возможных вариантов разреза трубы (C++):

Перебор всех возможных вариантов с переменными приравненных к определенному значению - C++
Помогите решить задачу: Есть 3 переменные А, В, С и у каждого из них какое-то целочисленное значение, которое задает пользователь. Нужно...

Вывести все возможные варианты разреза трубы - C++
Вводится длина трубы, количество заготовок (1, 2, 3, 4 ил 5), которые можно вырезать из трубы, и длина каждой заготовки. Вывести все...

Количество возможных вариантов и ребус - C++
Прошу помощи 1)Перед фермером стоит задача: купить на 100 рублей 100 голов скота. Стоимость быка – 10 руб., коровы – 5 руб. и телёнка...

Подсчет количества возможных вариантов формирования массива по условию - C++
Всем привет! Нужна помощь. Вот задание: На одном из секретных заводов осуществляется обработка радиоактивных материалов, в...

Проверка смежных клеток, максимум из всех возможных вариантов - C++
Задана некоторая плоскость NxM. Каждой клетке поля соответствует некоторое число. Фишка, начиная движение из угла поля с координатами (0,...

Перебор и вывод всех возможных сочетаний - C++
Итак,здравствуйте форумчане. Привела меня к вам интересная задачка. Вводится слово,заранее не известно количество букв необходимо...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Cynacyn
33 / 33 / 0
Регистрация: 02.05.2013
Сообщений: 109
19.09.2013, 15:00 #2
Для того чтобы организовать цикл, нужно понимать, что Вы хотите сделать.
Опишите алгоритм действий, по которому Вы пишите программу.
Лично мне не совсем понятно, какой нужен результат.
Напишите правильные ответы для ввода:
100 2 10 10
100 2 10 15
100 2 70 50
100 4 30 30 30 30
100 4 30 30 30 10
100 3 40 20 5
Юрий Владимиров
51 / 51 / 2
Регистрация: 06.04.2013
Сообщений: 178
19.09.2013, 15:11 #3
Cynacyn вроде так:
1. 10+10
2. 10+10, 10+15, 15+15
3. 50+50
4. нет вариантов
6. 40+40+20, 40+40+5, 20+20+40, 20+20+20, 5+5+5 и т д (вот тут нужно поправка автора...)
и т д

сейчас подумаю как это все сделать
nedsi
2 / 2 / 0
Регистрация: 18.09.2013
Сообщений: 65
19.09.2013, 18:26  [ТС] #4
Цитата Сообщение от Cynacyn Посмотреть сообщение
Для того чтобы организовать цикл, нужно понимать, что Вы хотите сделать.
Опишите алгоритм действий, по которому Вы пишите программу.
Лично мне не совсем понятно, какой нужен результат.
Напишите правильные ответы для ввода:
100 2 10 10
100 2 10 15
100 2 70 50
100 4 30 30 30 30
100 4 30 30 30 10
100 3 40 20 5
Вы взяли очень неудобные цифры, не видно где какая заготовка. Возмем следующий пример:
100 2 80 10
ответ:
10, 80, 80+10, 80+10+10, 10+10, 10+10+10, 10+10+10+10, 10+10+10+10+10, 10+10+10+10+10+10, 10+10+10+10+10+10+10, 10+10+10+10+10+10+10+10, 10+10+10+10+10+10+10+10+10, 10+10+10+10+10+10+10+10+10+10,
D3fend0r
17 / 17 / 1
Регистрация: 14.09.2013
Сообщений: 37
19.09.2013, 20:02 #5
Цитата Сообщение от nedsi Посмотреть сообщение
Никак не могу придумать как организовать цикл, прошу помощи.
P.S. ПРОШУ ВАС, НЕ ПИСАТЬ ПОЛНЫЕ ПРОГРАММЫ. И вам меньше работы и мне приятно.Благодарю.
Может лучше через рекурсию сделать. Рекурсивная функция получает 2 аргурмента : остаток трубы и размер заготовки (возможно еще нужно будет передать массив с возможными размерами заготовки,в этом случае вызываем рек. функцию из цикла). Рекурсия останавливается когда остаток трубы меньше , чем нужная заготовка.
Юрий Владимиров
51 / 51 / 2
Регистрация: 06.04.2013
Сообщений: 178
19.09.2013, 20:24 #6
нихера не понял, у тебя же условые -- на выходе должно быть 2 два -- колво заготовок!

у тебя ответ на метровую трубу и ОДНУ заготовку. это одна заготовка в 10 а потом в 80!!



ответ -- сначала сортируем массив начальных требований размеров, потом берем формулу перестановок, и переставляем по очереди все размеры от первого до последнего что бы они (сумма их) помещалась в заданный размер
Mk_Man
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 26
24.01.2015, 00:03 #7
Интересует вот эта тема.
можете объяснить как перебрать все комбинации и наконец-то написать код
1XPLoade1
30 / 30 / 17
Регистрация: 23.01.2015
Сообщений: 174
26.01.2015, 10:12 #8
C++
1
2
3
4
5
for (int i = 0; i < N; i++)
         for (int j = i+1; j < N; j++)
         {
               printf("%d %d\n",A[i], A[j]);
         }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2015, 10:12
Привет! Вот еще темы с ответами:

Организовать перебор всех возможных сочетаний - C++
Затрудняюсь с алгоритмом. Как можно организовать перебор всех возможных группировок? Имеется несколько романов одного писателя. Для...

Реализовать перебор всех возможных IP-адресов (С++) - C++
Реализовать перебор всех возможных IP-адресов, начиная с 0.0.0.0, заканчивая 255.255.255.0. (проще говоря перебор всех возможных комбинаций...

Перебор всех возможных сочетаний заданных переменных - C++
Чтобы не создавать новую тему, напишу здесь. Есть несколько переменных - около 20, часть переменных может иметь 2 значения, часть - три...

Перебор возможных значений для трёх чисел - C++
Доброго времени суток. Нужно перебрать все возможные значения трёх чисел. их сума равна 1. перебрать нужно с шагом 0,01, например 0,01...


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

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

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