두 개의 정수 n 과 m 를 입력 하고 수열 1, 2, 3.

804 단어
두 개의 정수 n 과 m 를 입력 하고 수열 1, 2, 3.
   이것 은 중흥 의 면접 문제 다.
   사고방식: 이 문 제 는 문자열 과 유사 한 조합 알고리즘 입 니 다. 앞에서 블 로그 에서 말씀 드 렸 습 니 다.
   코드:
#include <iostream>
#include <list>
using namespace std;
list<int> list1;
void find_factor(int sum,int n)
{
	//    
	if(n<=0||sum<=0)
		return;
	//      
	if(sum==n)
	{
		list1.reverse();
		for(list<int>::iterator iter=list1.begin();iter!=list1.end();iter++)
			cout<<*iter<<"+";
		cout<<n<<endl;
		list1.reverse();
	}
	list1.push_front(n);
	find_factor(sum-n,n-1);//n    
	list1.pop_front();
	find_factor(sum,n-1);//n     
}

int main(void)
{
	int sum,n;
	cin>>sum>>n;
	cout<<"       ,  :"<<endl;
	find_factor(sum,n);
	return 0;
}

좋은 웹페이지 즐겨찾기