题解 | #放苹果#
放苹果
https://www.nowcoder.com/practice/bfd8234bb5e84be0b493656e390bdebf
#include <stdio.h> int main() { int m,n; while (scanf("%d %d", &m, &n) != EOF) { int dp[11][11] = {0}; // 没有苹果和只有一个盘子的时候我们只有一种分法 if(m == 0 || n == 1) { printf("1\n"); } else { for(int i = 0; i < m + 1; i++) { for(int j = 1; j < n + 1; j++) { if(i == 0 || j == 1 || i == 1) { dp[i][j] = 1; } else if(i >= j) { // 如果苹果的数量大于盘子的数量 dp[i][j] = dp[i - j][j] + dp[i][j - 1]; } else { dp[i][j] = dp[i][j - 1]; } } } printf("%d\n", dp[m][n]); } } return 0; }