-4
哪一個代碼會更快? 我一直在嘗試一些有問題的社區網站。 對於我提交了兩個解決方案的問題。 我的第一個解決方案被接受了,但另一個被拒絕了。優化perl代碼的問題之一?
#INPUT consist of two integer ie 5 10
# 23 200
# Solution 1 (accepted)
@_ = split(/\s/,<>);
if ($_[0]%5 != 0) {
$_[1] = sprintf("%.2f",$_[1]);
print $_[1];
exit;
}
if ($_[0]+0.5 > $_[1] ) {
$_[1] = sprintf("%.2f",$_[1]);
print $_[1];
exit;
}
$_[1] = sprintf("%.2f",($_[1] - ($_[0]+.5)));
print $_[1];
或者
#Solution 2 (rejected)
@_ = split(/\s/,<>);
if ($_[0]%5 != 0) {
print (sprintf("%.2f",$_[1]));
exit;
}
if ($_[0]+0.5 > $_[1] ) {
print (sprintf("%.2f",$_[1]));
exit;
}
print (sprintf("%.2f",$_[1]));
如果你想知道一些代碼是多快的話,那麼[benchmark](http://modperlbook.org/html/9-2-Perl-Code-Benchmarking.html)就可以了。不要問我們。 – Quentin
難道他們不會教人們如何計時代碼嗎? (提示:'時間') –
我不會拒絕使用'print(sprintf(...))'而不是'printf'的代碼,但誘惑肯定會在那裏。 – tripleee