[알고리즘]
[C++] (MSVC, 최적화 안함)
#include <iostream>
#include "HourMeter.h"
using namespace std;
int fibonacci(const int value) {
if (value == 0 || value == 1) {
return 1;
}
return fibonacci(value - 1) + fibonacci(value - 2);
};
void main() {
HourMeter hm;
int fibValue{ 38 };
for(int i=0;i<5;i++){
printf("fibValue: %d\\n", fibValue);
hm.startMeasure();
int result = fibonacci(fibValue);
hm.endMeasure();
printf("value: %d\\n", result);
}
}
[Node.js]
function fibonacci(value){
if(value === 0 || value === 1){
return 1;
}
return fibonacci(value - 1) + fibonacci(value - 2);
}
let result;
let fibValue = 38;
for(let i=0;i<5;i++){
console.time('alice');
result = fibonacci(fibValue);
console.timeEnd('alice');
console.log(result);
}
[LuaJIT]
function fiboniacci(value)
if (value == 0 or value == 1) then
return 1
end
return fiboniacci(value - 1) + fiboniacci(value - 2)
end
fibValue = 38
for i=1,5 do
start_time = os.clock()
result = fiboniacci(fibValue)
end_time = os.clock()
elapsed_time = end_time - start_time
print("elapsed_time: " .. elapsed_time .. "sec");
print("result: " .. result)
end
[Golang]
package main
import (
"time"
)
func fibonacci(value int) int {
if value == 0 || value == 1 {
return 1
}
return fibonacci(value-1) + fibonacci(value-2)
}
func main() {
fibValue := 38
for i:=0;i<5;i++ {
startTime := time.Now()
result := fibonacci(fibValue)
elapsedTime := time.Since(startTime)
d2 := elapsedTime / time.Millisecond
println("time: ", d2, ", result: ", result)
}
}