我的朋友和我做了一个程序来做同样的事情,他在java和我的python中.我们必须解决的问题是"从1到20的所有数字均可被整除的最小正数是多少?" 我们都得到了正确的答案,据我所知,实施起来非常相似,但他的一个在大约三秒内完成,而我的一分钟.任何人都可以看到为什么会这样吗?为了清楚起见,我知道这两种方式都不是最好的,但它们都有效,我感兴趣的是看到为什么会有这么大的时差.谢谢!
Java的:
for (int i = 1; i > 0; i++) {
for (int j = 1; j < 21; j++) {
if (i % j != 0) {
break;
}
if (j == 20) {
System.out.println("ANSWER: " + i);
System.exit(0);
}
}
}
Run Code Online (Sandbox Code Playgroud)
蟒蛇:
e=1
while e > 0 :
num =1
while num < 21:
if e % num != 0:
break
num += 1
if num == 21:
print e
break
e += 1
Run Code Online (Sandbox Code Playgroud)
虽然你在python中的实现看起来很相似,但缩进非常重要.在Java版本中,此块:
if(j == 20){
System.out.println("ANSWER: " + i);
System.exit(0);
}
Run Code Online (Sandbox Code Playgroud)
在第二个for循环中.在python版本中,块:
if num == 21:
print e
break
Run Code Online (Sandbox Code Playgroud)
在第二个while循环之外.
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |