自然数和分解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自然数和分解相关的知识,希望对你有一定的参考价值。
题目描述 Description
把自然数N分解为若干个自然数之和,输出方案数。
输入描述 Input Description
N,(1≤n≤50)
输出描述 Output Description
方案数
样例输入 Sample Input
5
样例输出 Sample Output
7
数据范围及提示 Data Size & Hint
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做,蒟蒻这里就不写了,相信厉害的你会做这道题!
青春就是用拼搏交换了不起!
以上是关于自然数和分解的主要内容,如果未能解决你的问题,请参考以下文章