这个递归有头么?该如何处理

这个递归有头么?varn:longintfunctiong(k:longint):longintbeginifk1theng:kelseg:(2002*g(k-1)+200

这个递归有头么?
var  
n:longint;  
function   g(k:longint):longint;  
begin  
if   k   <=1   then   g:=k  
else   g:=(2002*g(k-1)+2003*g(k-2))mod   2005;  
end;  

begin  
writeln(g(2005));  
end.

[解决办法]
你算过这样的代码要运算多少次吗?
初步估算至少要经过2^2004次调用。2^64已经是天文数字了,不知道2^2004是个什么概念。
如果在大型机上运行,并且有愚公移山的精神,等上成百上千年大概可以出结果了。