问题描述
一个正整数可以划分为多个正整数的和,比如n=3时:
3;1+2;1+1+1;
共有三种划分方法。
给出一个正整数,问有多少种划分方法。
输入格式
一个正整数n
输出格式
一个正整数,表示划分方案数
样例输入
3
样例输出
3
数据规模和约定
n<=100
分析:f[i][j]=f[i-1][j-1]+f[i-j][j];i为要划分的数,j为划分的份数。
import java.util.Scanner;
public class Main {
final static int max=300;
static int[][] f=new int[max][max];
static int count=0;
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
f[0][0]=1;
for(int i=1;i<=n;i++) {
for(int j=1;j<=n;j++) {
if(i>=j)
f[i][j]=f[i-1][j-1]+f[i-j][j];
}
}
for(int k=1;k<=n;k++) {
count+=f[n][k];
}
System.out.println(count);
}
}