import java.util.Scanner;
class Main {
public static int fun(int i,int n,int[] a,int res,int m) {
if(i==n)
return res;
int ans1=fun(i+1,n,a,res+a[i],m);
int ans2=fun(i+1,n,a,res,m);
if(ans1>=m&&ans2>=m)
return Math.min(ans1, ans2);
if(ans1<m&&ans2<m)
return 0;
if(ans1>=m&&ans2<m)
return ans1;
if(ans1<m&&ans2>=m)
return ans2;
return 0;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n=in.nextInt();
int m=in.nextInt();
int[] a=new int[n];
for(int i=0;i<n;i++) {
a[i]=in.nextInt();
}
System.out.print(fun(0,n,a,0,m));
}
}
CCF CSP202209-2何以包邮?[递归_80分]
最新推荐文章于 2024-08-19 21:43:34 发布
该Java程序定义了一个名为`fun`的递归函数,用于处理一个整数数组`a`,并根据给定的索引`i`、数组长度`n`、累加结果`res`和阈值`m`进行计算。在主函数中,程序从用户接收输入,然后调用`fun`函数并打印结果。递归函数通过比较不同情况(如累加结果大于阈值或小于阈值)来决定下一步操作。
5628

被折叠的 条评论
为什么被折叠?



