海洋之心


私信TA

用户名:wanggongsheng

访问量:124311

签 名:

等  级
排  名 17
经  验 20705
参赛次数 3
文章发表 163
年  龄 26
在职情况 学生
学  校
专  业 计算机技术

  自我简介:

读研ing,平时不登录dotcpp

#include<iostream>
#include<algorithm>
using namespace std;
const int N = 110;
int dp[N][N];
int main(void)
{
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++) dp[i][0]=0;
	for(int i=0;i<=n;i++) dp[0][i]=1;
	
	//dp[i][j]表示把i拆分成不超过j的方案数 
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			//dp[i][j]只有包含j和不包含j两种情况
			//dp[i][j-1]不包含j,dp[i-j][j]包含若干个j 
			if(i>=j) dp[i][j]=dp[i][j-1]+dp[i-j][j]; 
			else dp[i][j]=dp[i][i];	
		} 
	}
	printf("%d",dp[n][n]);
	return 0;
}
 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区