Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324

Нахождение всех возможных вариантов сумм, если такой суммы нет найти приближенное значение

02.05.2017, 08:13. Показов 1429. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Написал программу для нахождения всех возможных сумму. Но нужно еще, что бы программа искала и приближенное к этой сумме.
Пояснение:Допустим программа не может найти сумму 22 потому что нет такой комбинации чисел, а приближонное 21 может найти. И нужно вывести эти числа на экран которые образуют 21.

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
#include<stdio.h>
#include<conio.h>
int n,d,w[10],used[10],count1=0;
int cs = 0; 
void subset(int k){
if (k >= n) return;  
int i;
used[k] = 1; 
cs += w[k];
if(cs == d){
cout<<"\n\nSymma %i:"<<++count1; 
for(i=0;i <= k;i++)  
if(used[i]==1) 
cout<<"%i "<<w[i];}
if (cs < d)  
subset(k + 1); 
used[k] = 0; 
cs -= w[k];
subset(k+1);}
main()
{
    int sum=0,i;
    cout<<"Vvedite n: ";
    cin>>"%i">>n;
    cout<<"Vvedite  %i elem\n"<<n;
    for(i=0;i<n;i++)
    cin>>"%i">>&w[i];
    for(i=0;i<n;i++)
    sum+=w[i];
    cout<<"Vvedite summu\n";
    cin>>"%i">>d;
    cs = 0;
    if(sum<d)
    cout<<"Ne naydeno\n";
    else
    subset(0);
    getch();
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.05.2017, 08:13
Ответы с готовыми решениями:

Нужно решение на задачу на нахождение колличества всех вариантов суммы одного числа
Задача &quot;СТОЛОВСКИЕ КОТЛЕТЫ&quot; Входной файл: С.IN Выходной файл: С.OUT Ограничение времени: 10 секунд Главный повар решил...

Запись всех возможных вариантов
Идея состоит в том что можна присвоить 1 целое слово например, а задача состоит в том чтобы ввести в программу несколько цифр и слов а она...

Перебор всех возможных вариантов
Предположим, у меня есть список spisok = Как вывести все возможнеы комбинации длиной 3, те xxx xxy xxu .... zzz

6
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
02.05.2017, 08:19
C++
1
2
3
4
5
6
7
8
9
int a;
cin>>a;
if(a==23){
   cout<<"ура 23";
}else if(a==22){
    cout<<"ура 22";
}else if(a==21){
    cout<<"ура 21";
}
так?
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
02.05.2017, 08:25  [ТС]
Antikl, Не совсем.
Вот у нас есть набор {3 28 12 4 5 56} и сумма 10. Из этого набора найти 10 невозможно. Поэтому мы берем максимально приближенное к 10. Это 9 т к 5 и 4 образуют 9
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
02.05.2017, 15:41
Цитата Сообщение от Mindfure Посмотреть сообщение
Поэтому мы берем максимально приближенное к 10. Это 9 т к 5 и 4 образуют 9
Оформите выбор пары с помощью функции, передавайте ей в качестве суммы для поиска сначала исходную сумму, если нет - сумму + 1, сумму - 1, сумму + 2, сумму - 2 и т.д.
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
02.05.2017, 15:44  [ТС]
MrGluck, Предлагаете так?
d тоже передавать как параметр, а не как глобальную переменную, таким образом я смогу в случае неуспеха subset(0,d) вызвать subset(0,d-1) или subset(0,d+1).
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
02.05.2017, 15:46
Цитата Сообщение от Mindfure Посмотреть сообщение
а не как глобальную переменную, таким образом я смогу в случае неуспеха subset(0,d) вызвать subset(0,d-1) или subset(0,d+1).
Типо того. Если честно, мне в вашем коде сложно ориентироваться. Ужасное форматирование и неявные имена переменных + логика через глобальные переменные.
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
02.05.2017, 15:48  [ТС]
MrGluck, Могу по другому оформить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.05.2017, 15:48
Помогаю со студенческими работами здесь

Перебор всех возможных вариантов
Доброго всем дня! Есть задача: На вход дается строка из символов '0' '1' и '2' длиной не более 50. Нужно изменить число 0 на 1...

Перебор всех возможных вариантов массива
Добрый день. У меня такая задача, имеется два массива одинаковой размерности. Мне заведомо известно, что при правильной расстановке строк в...

Перебор всех возможных вариантов фильтров
Всем привет, в общем задача следующая: Есть файлик excel в нём может быть более 1000 строк и порядка 30 столбцов (кол-во столбцов всегда...

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru