zoukankan      html  css  js  c++  java
  • 从数组中找出所有组合为s的数

    java版本
    package numCombine;
    /**
     * 从数组中找出所有组合为s的数
     * @author root
     *
     */
    public class NumComberAll {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int a[] = {2,3,3,2,2,4,1,4,-2,5,1};
    		String b = "";
    		fun(a, b, 11, 0, 5);
    	}
    	//递归搜索
    	public static void fun(int a[],String b, int length, int  i, int s)
    	{
    		String temp = b;
    		if(i>=length)
    			return;
    		//输出
    		if(s==0)
    			System.out.println(temp);
    		//不取a[i]
    		fun(a,temp, length, i+1, s);
    		//取a[i]
    		temp=temp+a[i];
    		fun(a,temp, length, i+1, s-a[i]);
    	}
    }
    
    C++版本
    //递归搜索
    void fun(int a[],string b, int length, int  i, int s)
    {
    	string temp = b;
    	if(i>=length)
    		return;
    	//输出
    	if(s==0)
    		cout<<"complte"<<b<<endl;
    	//不取a[i]
    	fun(a,temp, length, i+1, s);
    	//取a[i]
    	stringstream ss;
    	string str;
    	ss<<a[i];
    	ss>>str;
    	temp.append(str);
    	fun(a,temp, length, i+1, s-a[i]);
    	
    }
    
    int main()
    {
    	int a[] = {2,3,3,2,2,4,1,4,-2,5,1};
    	string b;
    	fun(a, b, 11, 0, 5);	
    	return 0;
    }
    


  • 相关阅读:
    LeetCode(122. 买卖股票的最佳时机 II)
    LeetCode(485. 最大连续1的个数)

    约瑟夫问题
    链表
    队列
    稀疏数组
    乐优商城项目学习
    LeetCode_Climbing Stairs
    数据结构&&算法基础知识
  • 原文地址:https://www.cnblogs.com/yan456jie/p/5369372.html
Copyright © 2011-2022 走看看