描述 2020-2021-2 程序设计基础单开班第三题 有n个苹果(0<n<101),已知其重量(假设为正整数)。现有1个承重为m的包,如何挑选,使包中的苹果数最多。 输入描述 先输入m、n(0<n<101),接下来输入n个整数,表示苹果的重量。输入苹果重量时,按非递减顺序进行输入 输出描述 输出只有1行,输出包能装的最多苹果数目。
时间: 2023-05-25 17:01:34 浏览: 58
A:
首先我们需要知道的是贪心算法,即每次选取当前最优的方案,使得整体最优。
对于这道题,我们可以考虑贪心策略为先从重量最小的苹果开始选取,直到承重量达到上限m或者所有苹果都被选完为止。
具体步骤如下:
1. 读入承重量m和苹果的数量n;
2. 读入n个苹果的重量,按非递减顺序排序;
3. 定义一个变量sum记录已经装入包中的苹果重量总和,一个变量count记录已经装入包中的苹果数量;
4. 从重量最小的苹果开始,依次加入包中,直到重量超过了m或者所有苹果都被选完为止,每次加入就将sum和count分别加上当前苹果的重量和1;
5. 输出count,即为最多能装下的苹果数目。
代码实现如下:
相关问题
面向对象的程序设计c++
C++ 是一种面向对象的编程语言,因此它提供了一些特性来支持面向对象的程序设计。以下是一些面向对象的编程概念和 C++ 中的实现方式:
1. 类和对象:类是一种数据类型,它定义了一组属性和方法,用于描述一类对象的共同特征和行为。对象是类的一个实例,它具有该类定义的属性和方法。在 C++ 中,类可以通过关键字 class 来定义,而对象则可以通过类的构造函数创建。
2. 封装:封装是一种将数据和操作封装在一个单元中的技术,以保护数据不被误用。在 C++ 中,类中的成员变量和成员函数默认是私有的,只有该类的成员函数可以访问它们。可以使用 public 和 private 访问修饰符来控制成员的访问权限。
3. 继承:继承是一种从已有类派生出新类的技术,新类可以继承已有类的属性和方法,并可以添加自己的属性和方法。在 C++ 中,可以使用关键字 public、protected 和 private 来控制继承的访问权限。
4. 多态:多态是一种同一种操作作用于不同的对象,可以产生不同的结果的能力。在 C++ 中,多态可以通过虚函数和函数重载来实现。虚函数是一种由派生类重写的基类函数,可以通过基类指针或引用调用派生类的实现。函数重载是一种定义多个相同名称的函数,但参数列表不同的技术,可以根据参数类型和数量来调用不同的函数。
以上是 C++ 中面向对象的一些基本概念和实现方式。熟练掌握这些概念和技术可以帮助开发人员更好地设计和实现面向对象的程序。
统计自从开班以来到目前为止你写过的总共有效代码行数(去除空行,注释行) + 读取所有的java文件(存储到ArrayList中) + 使用正则表达式匹配所有java文件中的文本内容 空行: \\s+\\n 注释行://|/*|\\s+\\*\\n|\\s+\\*/
我理解你的问题是要统计我写过的有效代码行数(去除空行和注释行)。为了实现这个功能,我将执行以下步骤:
1. 读取所有的java文件并将其存储到一个ArrayList中。
2. 使用正则表达式匹配所有java文件中的文本内容,筛选出有效的代码行。
3. 统计有效代码行数并返回结果。
请稍等,我将为你完成这个任务。