1 条题解

  • 0
    @ 2025-10-10 15:48:05

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    int n;
    int a[1000010];
    //输出函数 
    void output(int k)
    {
    	for(int i=1;i<k-1;i++)
    		cout<<a[i]<<"+";
    	cout<<a[k-1]<<endl;
    }
    
    //递归分解 
    void fun(int sum,int num)
    {
    	int i;
    	//递归出口 
    	if(sum==0 && num>2)
    	{
    		output(num);
    		return ;
    	}else{
    		for(i=1;i<=sum;i++)
    		{
    			if(i>=a[num-1])
    			{
    				a[num]=i;
    				fun(sum-i,num+1);
    			}
    		}
    	} 
    }
    
    int main()
    {
    	int n; 
    	cin>>n;
    	fun(n,1);
    	return 0;
    }
    
    • 1

    信息

    ID
    404
    时间
    1000ms
    内存
    32MiB
    难度
    10
    标签
    递交数
    1
    已通过
    0
    上传者