import java.util.*;
public class Main {
public static void main(String[] args) {
int N = 1010; // 定义一个常量N,表示数组的最大长度
int[][] f = new int[N][N]; // 创建一个二维数组f,用于存储中间结果
int mod = (int) (1e9 + 7); // 定义一个常量mod,表示取模的值
Scanner sc = new Scanner(System.in); // 创建一个Scanner对象,用于读取输入
int n = sc.nextInt(); // 读取输入的整数n
f[0][0] = 1; // 初始化数组f的第一个元素为1
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
f[i][j] = (f[i - 1][j - 1] + f[i - j][j]) % mod; // 根据递推关系式计算数组f的元素值
}
}
int res = 0; // 定义一个变量res,用于存储最终结果
for (int i = 1; i <= n; i++) {
res = (res + f[n][i]) % mod; // 累加数组f中的元素值到res,并进行取模运算
}
System.out.println(res); // 输出最终结果
}
}
Acwing.整数划分
最新推荐文章于 2024-08-26 14:50:03 发布