Найти подмножество B мощности k такую​​, модуль суммы элементов которой минимальный - C (СИ)

Узнай цену своей работы

Формулировка задачи:

В числовой множеству A мощности n найти подмножество B мощности k такую​​, модуль суммы элементов которой минимальный (числа в A имеют разные знаки).
Можете с С++ переписать для С?
#include <iostream>
using namespace std;
int a[100],n,a,b;
 
int sum(int x,int y)
{int s=0;
for(int i=x;i<=y;i++)
s+=a[i];
return s;
}
 
void print(int x,int y)
{
for(int i=x;i<=y;i++)
cout<<a[i]<<' ';
cout<<endl;
}
 
int main()
{
cin>>n>>a>>b;
for(int i=0;i<n;i++)
cin>>a[i];
 
for(int i=0;i<n;i++)
for(int j=i;j<n;j++)
if(sum(i,j)>=a&&sum(i,j)<=b)
print(i,j);
 
return 0;
}

Решение задачи: «Найти подмножество B мощности k такую​​, модуль суммы элементов которой минимальный»

textual
Листинг программы
#include <stdio.h>
 
int a[100],n,a,b;
 
int sum(int x,int y)
{int s=0;
for(int i=x;i<=y;i++)
s+=a[i];
return s;
}
 
void print(int x,int y)
{
for(int i=x;i<=y;i++)
printf("%d \n",a[i]);
}
 
int main()
{
scanf("%d %d",&n,&b);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
 
for(int i=0;i<n;i++)
for(int j=i;j<n;j++)
if(sum(i,j)>=a&&sum(i,j)<=b)
printf("%d %d\n",i,j);
 
return 0;
}

Объяснение кода листинга программы

В этом коде:

  1. В начале кода объявляются массив a размером 100, переменные n, a и b.
  2. Затем определены две функции: sum, которая вычисляет сумму элементов в заданном диапазоне, и print, которая выводит элементы массива в заданном диапазоне.
  3. В функции main сначала считываются значения n и b с помощью scanf.
  4. Затем с помощью двух вложенных циклов перебираются все возможные подмножества элементов массива a.
  5. Для каждого подмножества вычисляется сумма с помощью функции sum и проверяется условие sum(i,j)>=a&&sum(i,j)<=b.
  6. Если условие выполняется, то с помощью printf выводятся значения i и j (индексы начала и конца подмножества).
  7. В конце функции main возвращается 0, что означает успешное выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5
Похожие ответы