【发布时间】:2012-01-27 13:26:08
【问题描述】:
我正在尝试解决 Project Euler 中的一个问题,它正在创建一个直到 400 万的斐波那契数列,并添加该系列中的偶数,这显然是非常容易的任务,我会在 2 分钟内回答它,
int result=2;
int first=1;
int second=2;
int i=2;
while (i < 4000000)
{
i = first + second;
if (i % 2 == 0)
{
result += i;
}
first = second;
second = i;
}
Console.WriteLine(result);
但我想使用 lambda 表达式来实现它
我的努力是这样的
DelType del = (oldVal, newVal) =>((oldVal==0?1:newVal + newVal==1?2:oldVal+newVal) % 2 == 0) ? oldVal + newVal : 0;
int a=del(0, 1);
请建议如何完成此操作
【问题讨论】:
-
我建议先尝试在 Linq 语句中执行此操作。这更具可读性,之后您可以轻松地将其转换为 lambda 语法。