对于我在Java的AP comp sci课程,我的老师给了我们一个简单的实验室,我们必须从2-100找到数字因子。我们还必须找到一个数字是否是素数,完美,丰富和/或不足。他给了我们应该使用的所有方法以及我们应该使用的所有变量,它们是一个用于保存因子的数组,一个用于计算因子数量的int计数器。这很简单,我很快完成了。为了获得完美,丰富和不足,我还创建了一个sum变量来累加因子。我的老师告诉我,我不能这样做,因为在现实世界中,我无法做到。
两个问题:
提前致谢!
答案 0 :(得分:1)
在回答第一个问题时,变量会占用内存。保存总和的简单int变量是相当少的内存,当为桌面计算机的典型应用程序开发时,内存通常不是问题。但是在任何需要使程序尽可能保持内存效率的情况下,添加变量会增加程序使用的内存。但这可能很少见......
答案 1 :(得分:1)
我想,您可以重复使用计数器来添加因子;但是,如果你正在改变他的主要做这件事,我想这可能是不允许的。通常你只能改变你的功能而不是另一个。如果你正在图书馆工作,你甚至可能无法访问他们的功能。
因子的数量只是arr.length,所以你甚至不需要计数器。
答案 2 :(得分:1)
1)不,我认为,一般来说,在“现实世界”中,添加变量总是好,如果它提高了代码的可读性。两个最重要的事情是:1)你的代码是否正常工作; 2)另一个程序员可以轻松地理解你做了什么。如果你在一个疯狂的内存限制环境中工作(可能在嵌入式设备上),那么添加额外变量的唯一时间就是“糟糕”。
2)如果你真的只有两个变量可供使用 - 因子列表和因子数,那么你必须重新使用“因子计数”变量来存储总和。除非你知道因子列表的确切长度 - 然后你可以通过展开循环来测试(例如,if(factors[0] + factors[1] + ... + factors[20] > number)
) - 这可以避免使用临时变量。