我每周做一次计算机科学入门实验室。我希望在下一个实验室结束时能有一场快速的比赛。我想给他们这样的代码块:
public class EfficientCode{
public static void main(){
long startTime, endTime, executionTime;
startTime = System.currentTimeMillis();
yourEfficientMethod():
endTime = System.currentTimeMillis();
executionTime = endTime – startTime;
}
public static void doSomething(){
// you do this part.
}
}
他们将实现 doSomething 方法,代码最快的人将获得少量奖励分数。
问题是问题需要简单一些。学生们很好地掌握了:循环、if/else、字符串、加法、数组等。
以下是我对问题可能的想法:
- 找出 1 到 1,000,000 之间的所有完美数字。(一个完美的数字是一个数字,其中所有数字的因素加起来就是这个数字。即:6 = 3 + 2 + 1)
- 找出 1 到 1,000,000 之间的所有素数
我认为为了使方法之间的性能存在可衡量的差异,您必须多次执行某些操作。