如图,C语言编程565593 C Programming Language 采纳嘎嘎快
运行结果:
代码:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int merge(int a[], int n)
{
int tmp, max = 0;
int t, i, j, k;
int* p;
if (n == 1)
return a[0];
else if (n == 2)
return a[0] * a[1];
else
{
max = 0;
for (i = 0; i < n; i++)
{
for (j = i+1; j < n; j++)
{
p = (int*)malloc(sizeof(int) * (n - 1));
for (t = 0, k = 0; k < n; k++)
{
if (k != i && k != j)
p[t++] = a[k];
}
p[n - 2] = a[i] + a[j];
tmp = a[i]*a[j] + merge(p, n - 1);
if (tmp > max)
max = tmp;
delete[] p; p = 0;
}
}
return max;
}
}
int main()
{
int n;
int* a = 0;
int maxscore = 0, score;
int i, j;
scanf("%d", &n);
a = (int*)malloc(sizeof(int) * n);
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
maxscore = merge(a, n);
printf("%d", maxscore);
delete[] a;
a = 0;
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!