解题思路:
dp[i][j]为数值i分成的数最高不超过j的情况数。
注意事项:
参考代码:
#include<iostream> #include<string.h> #include<algorithm> using namespace std; int dp[110][110]; int n; int main() { cin>>n; memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++){ dp[0][i]=1; dp[i][i]=1; } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(j<=i){ dp[i][j]=dp[i][j-1]+dp[i-j][j]; } else dp[i][j]=dp[i][i]; } } cout<<dp[n][n]; return 0; }
0.0分
0 人评分
C语言训练-求素数问题 (C语言代码)浏览:728 |
C语言程序设计教程(第三版)课后习题9.2 (Java代码)浏览:638 |
字符串对比 (C语言代码)浏览:1413 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:561 |
输出正反三角形 (C语言代码)浏览:794 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1162 |
Tom数 (C语言代码)浏览:527 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:518 |
勾股数 (C语言代码)浏览:800 |
整除问题 (C语言代码)浏览:526 |