CCF CSP202209-2何以包邮?[递归_80分]

该Java程序定义了一个名为`fun`的递归函数,用于处理一个整数数组`a`,并根据给定的索引`i`、数组长度`n`、累加结果`res`和阈值`m`进行计算。在主函数中,程序从用户接收输入,然后调用`fun`函数并打印结果。递归函数通过比较不同情况(如累加结果大于阈值或小于阈值)来决定下一步操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



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));
        
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值