P1025 數的劃分

/*
題型:遞歸,排列組合
定義:把一個數N分解爲K份,他的方案數把N-i(1<=i<=M/K)分成k-1份的方案數(之和)相等
注意:g要定義在函數開頭,邊界條件注意 
*/ 
#include<bits/stdc++.h>
using namespace std;
int dfs(int sum,int step,int now)
{
    int g=0;
    if(step==1) return g=1;//邊界條件
    for(int i=now;i<=sum/step;i++)//從now枚舉,防止重複
        g+=dfs(sum-i,step-1,i);//統計方案和
    return g;
}
int main()
{
    int n,k;
    cin>>n>>k;
    cout<<dfs(n,k,1);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章