【问题标题】:Algorithm: Best way to create solve this algorithm scenario算法:创建解决此算法场景的最佳方法
【发布时间】:2023-03-23 10:35:01
【问题描述】:

我有一个问题,我想创建一个算法来解决它。但我想知道我的计算是否正确,或者我应该改进它。这是算法问题:

创建一个算法来计算学生的成绩。成绩等于小考的三分之一和大考的三分之二。打印学生成绩。

我创建的算法是:

  1. 阅读成绩。
  2. 使用以下公式计算期中和次要成绩:
    grade = 1/3 * minor exam + 2/3 * major exam。
  3. 打印成绩

我不知道我的公式是否正确。

【问题讨论】:

  • 如果您的算法是用一种特定语言实现的,请将其标记为这样。但不要向所有编程语言发送垃圾邮件。我将其重新标记为“与语言无关”。如果您想要特定语言的答案(可能有一些快捷方式),请随意编辑它,显示您尝试过的内容。此外,如果您不知道您的公式是否正确,您可以通过一些输入轻松验证它。
  • 请发布您尝试过的代码并详细说明您遇到的问题。
  • @Ali Beadle 那里不需要代码。我只需要它的算法是什么,就像我上面放的一样。
  • 输入是如何给出的?一次一个学生?
  • 嗨@amit,是的,我还应该在上面的算法中包含输入。但是你能帮我看看怎么做吗?

标签: algorithm language-agnostic


【解决方案1】:

我不知道我的公式是否正确。

从数学上讲-这确实是您描述的问题的公式。但是请注意,在许多语言中,1/3 * minor exam + 2/3 * midterm exam 将被解析为整数算术运算,这将导致错误答案(始终为 0)。

原因是,在整数运算中,在计算a/b 时,返回的答案是floor(a/b)(其中floor(.) 是最接近的非更高整数)。

为确保不会发生这种情况 - 确保将您的数字转换为浮点数,并使用浮点算术 - 虽然它们也存在不准确的问题,但在处理如此小的公式和使用相对较低的数字(绝对值)。

【讨论】:

  • 非常感谢。啊,我的公式真的是正确的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-20
  • 2020-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多