java编程:从数组(1,2,4,6,9)中列出所有相加等于20的组合,例如9+9+2=20

本文通过一个具体的Java程序示例介绍了如何寻找所有可能的组合来达到一个特定的数值目标。该程序使用了五种不同的数值(1, 2, 4, 6, 9),并尝试找出所有可能的组合方式使得这些数目的总和等于20。通过对嵌套循环的巧妙运用,实现了对所有可能组合的遍历,并输出了所有有效的组合。

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

原创

public class Test1 {
    public static void main(String[] args) {
        int[] nums = {1,2,4,6,9};
        int sum=20;
        int count=0;
        for(int a=0;a<20/nums[4]+1;a++){
            for(int b=0;b<20/nums[3]+1;b++){
                for(int c=0;c<20/nums[2]+1;c++){
                    for(int d=0;d<20/nums[1]+1;d++){
                        for(int e=0;e<20/nums[0]+1;e++){
                            int sums=a*nums[4]+b*nums[3]+c*nums[2]+d*nums[1]+e*nums[0];
                            if(sums==sum){
                                if(e!=0)System.out.print(nums[0]+"*"+e);
                                if(d!=0){
                                    if(e!=0)System.out.print("+");
                                    System.out.print(nums[1]+"*"+d);
                                }
                                if(c!=0){
                                    if(e!=0 ||d!=0)System.out.print("+");
                                    System.out.print(nums[2]+"*"+c);
                                }
                                if(b!=0){
                                    if(e!=0 ||d!=0||c!=0)System.out.print("+");
                                    System.out.print(nums[3]+"*"+b);
                                }
                                if(a!=0){
                                    if(e!=0||d!=0||c!=0||b!=0)System.out.print("+");
                                    System.out.print(nums[4]+"*"+a);
                                }
                                System.out.println("="+sum);
                                count += 1;
                                continue;
                            }
                        }
                    }
                }
            }
        }
        System.out.println("共有"+count+"种情况。");
    }
}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值