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

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

19.09.2013, 10:52. Просмотров 660. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.09.2013, 10:52
Ответы с готовыми решениями:

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

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

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

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

7
35 / 35 / 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
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
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
0 / 0 / 0
Регистрация: 22.01.2015
Сообщений: 26
24.01.2015, 00:03 7
Интересует вот эта тема.
можете объяснить как перебрать все комбинации и наконец-то написать код
0
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.01.2015, 10:12

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

Вывод всех возможных не повторяющихся вариантов расстановки скобок в выражении
Я написал код но такое чувство &quot;а вдруг что то упустил&quot; и я сам не уверен в своей идее. А...

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


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

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

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