#include<bits/stdc++.h>
#define LL long long
#define Max(a,b) a>b?a:b
using namespace std;
int cnt=1;
int k;
int sum=0;
int A[100];
void solve(int n,int p)
{
sum++;
if(n==0 && p==k+1)
{
for(int i=1;i<cnt;i++)
{
cout<<A[i]<<" ";
}
cout<<endl;
}
if(n<0 || p>k+1)return ;
else
{
for(int i=1;i<=n;i++)
{
A[cnt++]=i;
solve(n-i,p+1);
cnt--;
}
}
}
int main()
{
int n;
while(cin>>n>>k)
{
solve(n,1);
cnt=1;
cout<<"sum="<<sum<<endl;
}
}
将整数N分解成K个整数的和
最新推荐文章于 2022-10-05 23:00:44 发布