把自然數N分解爲若干個自然數之和,輸出方案數。
N,(1≤n≤50)
方案數
5
7
5 可分爲
1 1 1 1 1
1 1 1 2
1 1 3
1 2 2
1 4
2 3
5
暴搜即可 注意枚舉時下一個數大於等於上一個數
//codevs2549 自然數和分解 DFS
//copyright by ametake
//寫了半天博客竟然卡機了,鬱悶,憤懣,於是還是寫寫搜索吧
#include
#include
using namespace std;
int n,ans;
void search(int now,int last)
{
if (now==0)
{
ans++;
return;
}
else
{
for (int i=last;i<=now;i++)
{
search(now-i,i);
}
}
return;
}
int main()
{
scanf("%d",&n);
search(n,1);
printf("%d",ans);
return 0;
}
——但將酩酊酬佳節,不用登臨恨落暉