#include<stdio.h>
#define max(a,b) a>b?a:b //判断a、b的大小,返回大的
int a[25],n,m,s=0;
void dfs(int num,int sum)//函数功能大概是找出输入的n个数里面,小于等于m 的数中最大的数
{
if(num>n)return;//如果num 大于输入的 n 结束
if(sum<=m)//如果sum 小于 输入的m 进入
{
s=max(s,sum); //将s赋值为s和sum里最大的
}
dfs(num+1,sum);//递归n次,将num变到n-1的值,结束执行下一句
dfs(num+1,sum+a[num]);//进入函数判断
}
int main()
{
int i;
scanf("%d%d",&n,&m);//输入两个数 n , m
for(i=0;i<n;i++)
scanf("%d",&a[i]);//循环读入n 个数
dfs(0,0);
printf("%d",s);//输出
}
追问😳不懂
这个那两行friend是不是重载运算符为友元函数的那种
它是为了实现啥啊