整数划分问题

#include<iostream>
 using namespace std;
 #include<string>
 #include<algorithm>
void f(int n,int a[],int k)
 {
   if(n==0)
   {
   	
   	for(int i=0;i<k;i++)
   	{
   		cout<<a[i]<<' ';
   		
   	}
   	cout<<endl;
   	return;
   }
   int i;
   for(i=n;i>=1;i--)
   {
   	if(k>0&&i>a[k-1])continue;
   	a[k]=i;
   	f(n-i,a,k+1);
   }
  
 }
 int main()
 {
 	int a[1000];
 	f(6,a,0);
 	return 0;
 }

  

原文地址:https://www.cnblogs.com/zhangshuyao/p/8651846.html