Java 邮票自动售货机
我被分配了一项任务,去开发一种为邮资分发邮票的算法 邮票自动售货机。我需要写一个函数,它将返回一个函数的最小戳记数 给定值。我们可以假设机器里总是有一个一分钱的邮票 函数原型如下所示:Java 邮票自动售货机,java,oop,Java,Oop,我被分配了一项任务,去开发一种为邮资分发邮票的算法 邮票自动售货机。我需要写一个函数,它将返回一个函数的最小戳记数 给定值。我们可以假设机器里总是有一个一分钱的邮票 函数原型如下所示: int min_number_of_stamps ( const int* array, /* input array of sorted stamp values */ size_t array_size, /* number of elements in array */ int request /* des
int min_number_of_stamps (
const int* array, /* input array of sorted stamp values */
size_t array_size, /* number of elements in array */
int request /* desired value to of stamps */
);
函数将返回给定时间的最小戳记数
价值例如,如果数组是[90,30,24,15,12,10,5,3,2,1]
,则
请求是32
,输出应该是2
,一张30美分的邮票
和一张2美分的邮票
分邮票
谁能帮我解决这个问题或给我一些提示吗?你肯定有一个好的开始:你需要一个数组 与C/C++的两个区别: 1) 您不需要“数组大小”:Java数组“知道”它们的长度 2) 不能声明“const int*array”。相反,您必须指定“int[]数组”。。。然后初始化它 这里有一个很好的链接: 附言: 以下是您可能会考虑的Java类的框架:
public class StampVendingMachine {
public static void main (String[] args) {
// Your program starts in this method...
}
public int minStamps (int num_stamps) {
// This is where you can compute how many stamps
}
// This can be your "lookup table"
private int[] min_number_of_stamps;
}
缴费灵:
另一个链接:
你肯定有一个好的开始:你需要一个阵列 与C/C++的两个区别: 1) 您不需要“数组大小”:Java数组“知道”它们的长度 2) 不能声明“const int*array”。相反,您必须指定“int[]数组”。。。然后初始化它 这里有一个很好的链接: 附言: 以下是您可能会考虑的Java类的框架:
public class StampVendingMachine {
public static void main (String[] args) {
// Your program starts in this method...
}
public int minStamps (int num_stamps) {
// This is where you can compute how many stamps
}
// This can be your "lookup table"
private int[] min_number_of_stamps;
}
缴费灵:
另一个链接:
因为这是家庭作业: 我是Java的新手,不知道是否有人能帮我解决这个问题 如果你是说。。。“给我一个解决方案”。。。这显然是不合适的,也不符合你的长远利益 。。。或者给我一些提示去做 嗯
-
虽然语法在很多方面都是相似的,但是java和C++或C++是非常不同的。不要期望你的C/C++知识会传到java。例如:
- Java没有函数,它有方法
- Java的数组声明和初始化语法与C/C++不同
- Java数组在一些重要方面与C/C++在语义上不同
因为这是家庭作业: 我是Java的新手,不知道是否有人能帮我解决这个问题 如果你是说。。。“给我一个解决方案”。。。这显然是不合适的,也不符合你的长远利益 。。。或者给我一些提示去做 嗯
-
虽然语法在很多方面都是相似的,但是java和C++或C++是非常不同的。不要期望你的C/C++知识会传到java。例如:
- Java没有函数,它有方法
- Java的数组声明和初始化语法与C/C++不同
- Java数组在一些重要方面与C/C++在语义上不同
您可以从第一个戳记值(最高)开始,然后继续,直到找到小于请求的戳记值为止。然后您只需将该戳记添加到一个数组中,从请求中减去并重复,直到请求为零。我建议先提出一个通用算法来解决这个问题,然后再考虑如何用Java编程。现在的问题是,听起来你基本上希望所有的工作都能为你完成。@RiverC说你的面额是[90,80,70,1]。你的要求是140。按照你的建议,我会得到90+(50 x 1)。我希望得到70+70。您从第一个戳记值(最高)开始,然后继续,直到找到小于请求的戳记值。然后您只需将该戳记添加到一个数组中,从请求中减去并重复,直到请求为零。我建议先提出一个通用算法来解决这个问题,然后再考虑如何用Java编程。现在的问题是,听起来你基本上希望所有的工作都能为你完成。@RiverC说你的面额是[90,80,70,1]。你的要求是140。按照你的建议,我会得到90+(50 x 1)。我希望得到70+70。非常感谢您的回复!这些真的很有帮助,对我来说很有意义。我想我正朝着正确的方向前进。非常感谢您的回复!这些真的很有帮助,对我来说很有意义。我想我正朝着正确的方向前进。