Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
nedsi
2 / 2 / 2
Регистрация: 18.09.2013
Сообщений: 65
1

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

19.09.2013, 10:52. Просмотров 576. Ответов 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. ПРОШУ ВАС, НЕ ПИСАТЬ ПОЛНЫЕ ПРОГРАММЫ. И вам меньше работы и мне приятно.Благодарю.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2013, 10:52
Ответы с готовыми решениями:

Перебор всех возможных вариантов (рекурсивно)
Не буду вникать в суть программы. Предположим у меня есть архивы с точками, мне нужно выбрать...

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

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

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

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

7
Cynacyn
34 / 34 / 7
Регистрация: 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
0
Юрий Владимиров
52 / 52 / 5
Регистрация: 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 и т д (вот тут нужно поправка автора...)
и т д

сейчас подумаю как это все сделать
0
nedsi
2 / 2 / 2
Регистрация: 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,
0
D3fend0r
18 / 18 / 13
Регистрация: 14.09.2013
Сообщений: 37
19.09.2013, 20:02 5
Цитата Сообщение от nedsi Посмотреть сообщение
Никак не могу придумать как организовать цикл, прошу помощи.
P.S. ПРОШУ ВАС, НЕ ПИСАТЬ ПОЛНЫЕ ПРОГРАММЫ. И вам меньше работы и мне приятно.Благодарю.
Может лучше через рекурсию сделать. Рекурсивная функция получает 2 аргурмента : остаток трубы и размер заготовки (возможно еще нужно будет передать массив с возможными размерами заготовки,в этом случае вызываем рек. функцию из цикла). Рекурсия останавливается когда остаток трубы меньше , чем нужная заготовка.
0
Юрий Владимиров
52 / 52 / 5
Регистрация: 06.04.2013
Сообщений: 178
19.09.2013, 20:24 6
нихера не понял, у тебя же условые -- на выходе должно быть 2 два -- колво заготовок!

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



ответ -- сначала сортируем массив начальных требований размеров, потом берем формулу перестановок, и переставляем по очереди все размеры от первого до последнего что бы они (сумма их) помещалась в заданный размер
0
Mk_Man
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 26
24.01.2015, 00:03 7
Интересует вот эта тема.
можете объяснить как перебрать все комбинации и наконец-то написать код
0
1XPLoade1
30 / 30 / 38
Регистрация: 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]);
         }
0
26.01.2015, 10:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2015, 10:12

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

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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