中兴面试题 : 输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数, 使其和等于 m. --java算法解决方法。

本文介绍了如何使用Java解决中兴面试题,即给定两个整数n和m,找出所有从数列1到n中取数的组合,使得它们的和等于m。文章提供了一个基于排列组合的Java算法实现,并展示了不同输入下的输出结果,例如输入6, 6和10, 10的组合情况。" 6748143,83198,Erlang TCP聊天室:构建与异常处理,"['erlang', 'tcp编程', '并发处理', '网络编程', '异常管理']

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

2010年中兴面试题
编程求解:
输入两个整数 n 和 m,从数列1,2,3.......n 中 随意取几个数,
使其和等于 m ,要求将其中所有的可能组合列出来.

 

看了一下网络上基本都是C++的答案,这和中兴招人的要求有关,不过我是学java的,给一个java的算法:

 

主要思路是排列组合,然后把组合中符合条件的都过滤出来:

 

public class CombinationToSum {

    public static void main(String[] args) {
        permutation(6, 6);
    }

    private static void permutation(int sum, int n) {
       
        for(int i=n; i>0; i--){
            if(i == sum){
                System.out.println(i);
                continue;
            }
            int pos = i - 1;
            while(pos > 0){
                List<Integer> ls = new ArrayList<Integer>();
                ls.add(i);
                for(int j=pos; j&g

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值