如何为该递归问题找到正确的函数?

时间:2019-01-29 21:30:09

标签: c89

我正在学习递归。

我得到一个整数数组,我们将其标记为a []。 (让我们以数组为例-a [] = {3,4,5,2,7,6,5})。

我需要编写一个函数来查找此整数的子组,如果将它们求和,将得到最高的数字。

但是有一些限制:

  1. 我不能接受超过1次的相同整数。

  2. 在此数组中我不能接受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!!
        }

谢谢!

  1. 对于数组a [10] = {1,2,5,4,2,7,8,9,8,1},最高和为26。

  2. 对于数组a [2] = {1,2},最高和为3。

  3. 对于数组a [5] = {4,1,7,1,4},最高和为8。

  4. 对于数组a [7] = {3,4,5,2,7,6,5},最高和为18。

0 个答案:

没有答案