2016-09-27 49 views
-2

我是编程新手,这件事情让我困惑。我的教授给了我们一项任务,他没有教我们怎么做,也没有在我们的教科书中。请帮忙!现在的问题是“考虑到宿舍,硬币,镍和硬币的数量,实现一个功能,让你手头上的资金总额”实现一个函数来计数硬币

这是使用Python 3

的感谢!

+2

目前还不清楚你要求我们做什么。如果是为你完成你的任务,[这不是](http://meta.programmers.stackexchange.com/questions/6166/open-letter-to-students-with-homework-problems)。我们不是家庭作业转储服务。请尝试去做,展示你的尝试,然后提出你正面临的问题。 – Li357

回答

0

核心数据是两个数组,一个是硬币数量数组,另一个是硬币数值数组。您需要遍历数组,将数组中的值与另一个数组相乘,然后合计总和。

您可以使用循环手动执行此操作(这是一种很好的做法,因为您可以在任何语言中实现此操作),也可以在数组长度上对数组a和b使用python“sum”函数。

总和([A [1] * B [I]为我的range(LEN(B)))

1

我会写你的代码做你帮倒忙,但这应该帮助你开始在正确的方向。我实际上建议先阅读this article

正如文章所描述的,解决问题的步骤是:

  1. 明白的问题 - 你被要求寻找或展示什么?你是否理解所有使用的术语/词汇?你有足够的信息来解决问题吗?你有足够的“背景知识”来解决问题吗?

    这一步听起来应该是显而易见的,但很多人跳过它。例如,很多在这个网站上提出问题的人会问:“我如何在C#中编写x?”并且稍后会在一些探测之后才承认他们实际上并不知道C#。那么,在那种情况下,他们显然缺少关键的背景知识,所以他们的第一步就是去阅读一些关于C#的教程。在这种情况下,术语包括“Python”,“Python 3”,“函数”以及“宿舍”,“角钱”,“镍币”等货币术语。我假设您知道什么宿舍,硬币等等(尽管我猜这可能会让你感到困惑,这取决于你来自哪里;例如,我读了一篇文章,后面提到了一个“kopek”,我不得不去查看它这是卢布的1/100)。

    问题是:你认识Python吗?如果没有,你可能想要阅读它的教程(或者如果他们提供了有关Python的信息,请查看你的讲义和/或教科书)。你知道Python 3与Python 2.7有什么不同吗? (提示:有重大差异)。您是否熟悉Python函数的内容以及它们的写法?

    其中一些可能很明显,但您会惊讶于有多少人跳过其中一个步骤。我已经在自己之前完成了它 - 开始研究一个问题,只是意识到我没有完全理解它,或者我不知道其中一个术语的含义。创意顾问Todd Henry认为,这个问题完全不了解,是导致创意领域(不仅仅是软件工程或数学)“坚持”的主要原因之一。

  2. 制定一个计划
  3. 执行计划
  4. 回首/体现 - 测试您的解决方案,想想如果有更好的方法来做到这一点,等

首先理解问题。忘记编程一秒 - 如果我递给你一些改变,并要求你“手工计算”,你会怎么做? (“如何这样做”实际上在很多情况下非常有帮助)。例如,如果我给你5个宿舍,3个硬币,2个镍币和3个便士,那么多少钱?想想不同的方式,你可以这样做:

  • 5个季度= 0.25 * 5 = $ 1.25
  • 3角钱= 3 * 0.10 = 0.30。
  • 2尼尔= 2 * 0.05 = 0.10。
  • 3便士= 3 * 0.01 = 0.03。 因此,答案是$ 1.25 + $ 0.30 + $ 0.10 + $ 0.03。你被要求展示或做的是编写一个程序,它可以完成像我自动“自动”做的事情。

希望清除了“理解问题”的部分。在这一点上,我将离开步骤2 - 4。

以下是你可能想测试有几个可能性:

  • 一个或几个每一种硬币
  • 几个一种硬币,没有任何的休息(如5个季度的的和没有别的或3个角钱,没有别的)
  • 一些季度,3角钱
  • 其中一个硬币等于或超过一美元 - 例如120便士,10角钱,4角钱等。 尝试测试不同的“种类”场景以及“边缘案例”。错误是很多更有可能在有效输入的“边缘”。例如,如果教授说你不能有超过1美元的硬币,例如用0,1,99,100和101便士来测试。 99和100应该“正常”工作,并且应该以101便士“拒绝”或“优雅地失败”。
+0

听起来不错EJ – Drew