双11众多商品进行打折销售,小明想购买一些自己心意的商品
但由于受购买资金限制,所以他决定从众多心意商品中购买3件
而且想尽可能的花完资金
现在请你设计一个程序帮助小明计算尽可能花费的最大资金额
输入描述
第一行为整型数组M 数组长度小于100 数组元素记录单个商品的价格
单个商品价格<1000
第二行输入为购买资金的额度R
R<100000
输出描述
输出为满足上述条件的最大花费额度
如果不存在满足上述条件的商品请返回-1
例子1
输入
23,26,36,27
78
输出
76
例子2
输入
23,30,40
26
输出
-1
备注:输入格式正确
————————————————
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NUM 100
void GetMaxCount(int *list, int len, int n)
{
int i, j, k;
int arr[1024] = {0};
int pos = 0, sum, max = -1;
for (i = 0; i < len; i++) {
for (j = 0; j < len; j++) {
for (k = 0; k < len; k++) {
sum = list[i] + list[j] + list[k];
if (((i != j) && (j != k) && (i != k)) && (sum <= n)) {
if (max < sum) {
//printf("%d+%d+%d\n", list[i], list[j], list[k]);
max = sum;
}
}
}
}
}
printf("max:%d\n", max);
}
int main()
{
int list[MAX_NUM] = {0};
int pos = 0;
int n;
char str[1024] = {0};
gets(str);
scanf("%d", &n);
char *p = strtok(str, ",");
while (p != NULL) {
list[pos] = atoi(p);
pos++;
p = strtok(NULL, ",");
}
GetMaxCount(list, pos, n);
}