Я изучаю рекурсию.
Я получаю массив целых чисел, и мы пометим его как [].(давайте возьмем в качестве примера массив - a [] = {3,4,5,2,7,6,5}).
Мне нужно написать функцию, которая находит подгруппу этогоцелые числа, что если я их сложу, получу наибольшее число.
Но есть некоторые ограничения:
Я не могу взять одно и то же целое число более 1 раза.
Я не могу взять 2 целых числа в этом массиве, так как разница между ними равна 2 или 3. (Если я взял 5, я не могу взять правый 7).
#include <stdio.h>
#include <stdio.h>
#define MAX_SIZE 1000
int max_sum(int a[],int n);
int max(int a, int b);
int main()
{
int i, size_array, array[MAX_SIZE];
scanf("%d",&size_array);
for(i=0;i<size_array;i++)
scanf("%d",&array[i]);
printf("%d",max_sum(array,size_array));
return 0;
}
int max(int a, int b)
{
return a>b ? a : b;
}
int max_sum(int a[], int n)
{
I AM STUCK HERE!!
}
Спасибо!
Для массива a [10] = {1,2,5,4,2,7,8, 9,8,1}, наибольшая сумма будет 26.
Для массива a [2] = {1,2}, наибольшая сумма будет 3.
Для массива a [5] = {4,1,7,1,4} наибольшая сумма будет равна 8.
Длямассив a [7] = {3,4,5,2,7,6,5}, наибольшая сумма будет 18.