其實克里斯看起來像我的L9代碼答案几乎完全一樣。然而,我必須做的時間是將其包裝在一個循環中來計時1000次。
Lasso 9可以做Microseconds,而之前的版本只能以毫秒爲單位。
下面是3種方式 - 第一種是你的,然後是我的兩個版本。
define br => '<br>'
local(start_time = micros)
loop(1000)=>{
var ('total' = 0);
loop(1000-1);
loop_count % 3 == 0 || loop_count % 5 == 0 ? $total += loop_count;
/loop;
$total;
}
'Avg (L8 code in 9): '+(micros - #start_time)/1000+' micros'
br
br
local(start_time = micros)
loop(1000)=>{
local(sum = 0)
loop(999)=>{ loop_count % 3 == 0 || loop_count % 5 == 0 ? #sum += loop_count }
#sum
}
'Avg (incremental improvement): '+(micros - #start_time)/1000+' micros'
br
br
local(start_time = micros)
loop(1000)=>{
local(sum = 0)
loop(999)=>{ not (loop_count % 3) || not(loop_count % 5) ? #sum += loop_count }
#sum
}
'Avg using boolean not: '+(micros - #start_time)/1000+' micros'
輸出是:我沒有用「輸出」,因爲它是在8許多情況下,冗餘和完全冗餘
Avg (L8 code in 9): 637 micros
Avg (incremental improvement): 595 micros
Avg using boolean not: 596 micros
注9 :)
我會在Lasso 9中做很多不同的事情,所以我需要回顧一下自己的答案......這個Chris有什麼問題? –
[問題1](http://projecteuler.net/problem=1) – TreefrogChris