首页 > 试题广场 >

放苹果

[编程题]放苹果
  • 热度指数:11722 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
把 M 个同样的苹果放在 N 个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?
注意:5、1、1 和 1、5、1 是同一种分法,即顺序无关。

输入描述:
输入包含多组数据。

每组数据包含两个正整数 m和n(1≤m, n≤20)。


输出描述:
对应每组数据,输出一个整数k,表示有k种不同的分法。
示例1

输入

7 3

输出

8
头像 flyflyfly00
发表于 2021-04-25 22:16:59
首先用递归的思想来思考这道题:1,递归出口:当只有一个盘子或者 含有 0 个 或 1 个苹果的时候只有一种方法2,当盘子数 n 大于苹果数 m 时,则必有 n - m 个空盘子,所以只需求 m 个盘子 放 m 个苹果时的方法数即可,3,当盘子数 n 小于等于 苹果数 m 时,总方法数 = 当含有 展开全文
头像 ⭐⭐⭐⭐⭐⭐
发表于 2023-03-14 17:41:21
#include <iostream> #include<vector> using namespace std; int main() { int m,n; while(cin>>m>>n){ vector<vector 展开全文
头像 牛客596495425号
发表于 2025-03-16 14:02:29
#include <iostream> #include<cstring> using namespace std; const int N = 30; int f[N][N];//f[i][j]i个苹果放入j个盘子 //分成没有空盘子和有空盘子 //有空盘子f[i][j]= 展开全文
头像 粉詹眉
发表于 2024-02-09 00:18:31
#include <iostream> using namespace std; int dfs(int u,int m,int n,int last){ if(u==n){ if(m==0) return 1; else return 0; 展开全文
头像 rainman_
发表于 2023-03-21 09:34:52
#include <iostream> using namespace std; /* m 个苹果 n 个盘子 */ int ways(int m, int n) { if (m == 0) { //苹果没了,这是一种方法 return 1; 展开全文
头像 宁静的冬日
发表于 2022-03-08 13:02:17
先写递归,然后再用dp简化复杂度,这样思路更清晰 #include<iostream> #include<algorithm> #include<cstring> using namespace std; #define MAX 1024; int dp[32][ 展开全文
头像 牛客735906266号
发表于 2025-03-20 11:47:27
#include <iostream> using namespace std; int main() { int n, m; while (cin >> n >> m) { // 注意 while 处理多个 case int d 展开全文
头像 lyw菌
发表于 2023-03-09 16:40:33
//动态规划 #include "stdio.h" int dp(int m,int n){ if(n == 1) return 1; if(m == 0) return 1; if(m < n) return dp(m, 展开全文
头像 福涂
发表于 2026-02-14 14:37:20
动态规划的入门练习 #include<stdio.h> #include<vector> using namespace std; int main() { int m, n; while (scanf("%d%d", &m, & 展开全文
头像 耶汁吨吨吨
发表于 2026-03-10 16:58:53
#include <iostream> #include <algorithm> #include <cstring> using namespace std; int n, m; int d[25][25]; int main() { while(cin 展开全文

问题信息

难度:
58条回答 18887浏览

热门推荐

通过挑战的用户

查看代码
放苹果