标签:范围 logs scan png == scanf ext 空间 row
把自然数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
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> #define N 1000 using namespace std; int n,ans; void dfs(int x,int y) { if(x==0)//这个时候说明我们已经凑到了n { ans++;//方案数加一 return ; } for(int i=y;i<=n;i++) if(x-i>=0) dfs(x-i,i);//x-i为当前减完后数的大小 i为当前要减的数的大小 } int main() { scanf("%d",&n); dfs(n,1); printf("%d",ans); return 0; }
据说这个题好像能用dp做,蒟蒻这里就不写了,相信厉害的你会做这道题!
标签:范围 logs scan png == scanf ext 空间 row
原文地址:http://www.cnblogs.com/z360/p/6942351.html