解题思路:
注意事项:
参考代码:
import java.util.*; public class Main { public static void main(String[] args) { Scanner sr = new Scanner(System.in); int n = sr.nextInt(); int[][] dp = new int[n + 1][n + 1]; countPaths(n, 1, dp); System.out.println(dp[n][1]+1); } static int countPaths(int a, int b, int[][] dp) { if (dp[a][b] != 0) { return dp[a][b]; // 如果已经计算过,直接返回结果 } if (a / 2 < b) { return 0; // 不满足条件,返回0 } int count = 1; // 至少有一个数(当前数) count += countPaths(a, b + 1, dp); // 递归调用1 count += countPaths(b, 1, dp); // 递归调用2 dp[a][b] = count; // 存储结果 return count; } }
0.0分
2 人评分
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:709 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:814 |
C二级辅导-同因查找 (C++代码)(42的倍数,,所以直接递加42输出)浏览:1096 |
点我有惊喜!你懂得!浏览:1337 |
不知道哪里错了浏览:1145 |
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:1094 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:639 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:621 |
模拟计算器 (C++代码)浏览:806 |
1050题解(结构体数组与结构体指针的使用)浏览:1108 |