问题描述:一个正整数可以划分为多个正整数的和,比如n=3时:
3;1+2;1+1+1;
共有三种划分方法。
给出一个正整数,问有多少种划分方法。
数据规模和约定
n< =100
思路:dp:比如求n得划分就是:n-1的划分+1;n-2的划分+1…2;
n-3的划分+1……3;……;n-n的划分+n……1
特别注意:循环颠倒的话就会出现,2 1这种结果一样顺序不一样的结果
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int[]dp=new int[n+1];
dp[0]=1;
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j++)
{
dp[j]+=dp[j-i];
}
}
System.out.println(dp[n]);
}
}