我得到的结果是31,在我的笔记本上运行起来几乎不花时间(平均低于10毫秒)。并且,计算机并不笨,笨的是编写计算机程序的人才对。
static Dictionary<int, long> midF = new Dictionary<int, long>();static private long F(int k)
{
if (k <= 1)
return k; long res;
if (!midF.TryGetValue(k, out res))
{
res = (2002 * F(k - 1) + 2003 * F(k - 2)) % 2005;
midF.Add(k, res);
}
return res;
}
static Dictionary<int, long> midF = new Dictionary<int, long>();static private long F(int k)
{
if (k <= 1)
return k; long res;
if (!midF.TryGetValue(k, out res))
{
res = (2002 * F(k - 1) + 2003 * F(k - 2)) % 2005;
midF.Add(k, res);
}
return res;
}
static long[] midF = new long[2005];肯定可以再快上百倍。但是我通常会等到真正干大事的时候才那样去想问题。我重视的东西,是很好玩的,对技术不太关心。
另外,csdn什么时候可以连续回复超过三次了?
比较NB,分析了下两个写法,是比较不一样.
另外我测试了下,发现[hnaulxd(博士)]的写法居然使我的CPU的风扇剧烈运动.