把自然数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;
}
——但将酩酊酬佳节,不用登临恨落晖