2

在我的 Java AP comp sci 课程中,我的老师给了我们一个简单的实验室,我们必须在其中找到 2-100 的数字因数。我们还必须找出一个数是否是质数、完美数、丰富数和/或不足数。他给了我们所有我们应该使用的方法和我们应该使用的所有变量,这些是一个数组来保存因子和一个 int 计数器来计算因子的数量。这很容易,我很快就完成了。为了得到完美、丰富和不足,我还创建了一个 sum 变量来将因素相加。我的老师告诉我,我不能这样做,因为在现实世界中,我做不到。

两个问题:

  1. 这有道理吗?为什么开发人员不能添加变量?
  2. 有没有一种简单的方法可以让任何人在不添加变量的情况下做到这一点?

提前致谢!

4

3 回答 3

2

我想你可以重复使用计数器来添加因素;但是,如果您要更改他的主要功能来执行此操作,那可能是不允许的,我猜。通常你只能改变你的功能而不是另一个。如果您在图书馆工作,您甚至可能无法访问它们的功能。

因子的数量只是 arr.length,所以你甚至不需要计数器。

于 2013-09-25T22:37:54.287 回答
2

1) 不。我认为,一般来说,在“现实世界”中,添加变量总是好的,如果它提高了代码的可读性。最重要的两件事是 1)您的代码是否正常工作,以及 2)其他程序员能否轻松理解您所做的事情。添加额外变量的唯一一次“糟糕”是如果您在疯狂的内存绑定环境中工作(可能在嵌入式设备上)。

2)如果您真的只有两个变量可以使用 - 因子列表和因子计数,那么您必须重新使用“因子计数”变量来存储总和。除非您知道因子列表的确切长度——那么您可以通过展开循环来测试(例如,if(factors[0] + factors[1] + ... + factors[20] > number))——这可以避免使用临时变量。

于 2013-09-25T22:38:20.273 回答
1

在回答您的第一个问题时,变量会占用内存。保存总和的简单 int 变量是相当少量的内存,在为台式机的典型应用程序开发时,内存通常不是问题。但是在任何需要使程序尽可能提高内存效率的情况下,添加变量都会增加程序使用的内存。但这可能会非常罕见......

于 2013-09-25T22:37:14.380 回答