正整数划分.cpp

来自「这里面是很多经典算法的源代码」· C++ 代码 · 共 43 行

CPP
43
字号
#include<stdio.h>
#include<stdlib.h>
int dp[2000][2000];

main()
{
	int n;
	int kind(int ,int );
	scanf("%d",&n);
	int sum=kind(n,n);
	printf("%d",sum);
	return 0;
}
int kind(int n,int m)
{
	if(dp[n][m])
	{
		return dp[n][m];
	}
	if(m==1)
	{
		dp[n][m]=1;
		return dp[n][m];
	}
	if(n==1)
	{
		dp[n][m]=1;
		return dp[n][m];
	}
	if(m>n)
	{
		dp[n][m]=kind(n,n);
		return dp[n][m];
	}
	if(m==n)
	{
		dp[n][m]=1+kind(n,m-1);
		return dp[n][m];
	}
	dp[n][m]=kind(n,m-1)+kind(n-m,m);
	return dp[n][m];

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?