算法:创建解决此算法方案的最佳方法

时间:2015-06-21 08:44:04

标签: algorithm language-agnostic

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

  

创建一个计算学生成绩的算法。该等级等于未成年考试的三分之一和主要考试的三分之二。打印学生成绩。

我创建的算法是:

  1. 阅读成绩。
  2. 使用以下公式计算中期和次要成绩:
    grade = 1/3 * minor exam + 2/3 * major exam
  3. 打印成绩
  4. 我不知道我的公式是否正确。

1 个答案:

答案 0 :(得分:1)

  

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

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

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

为了确保不会发生这种情况 - 确保将您的数字转换为浮点数,并使用浮点数算术 - 虽然它们也有不准确的问题,但在处理这样一个小公式时很少出现问题相对较低的数字(绝对值)。