Project Euler problem #1基本上涉及查找总数小于1000并且可被三或五整除的总和。如果存在某种包含1到999(含)之间所有整数的预先存在的列表,那么使用LINQ将非常简单。
LINQ是否有内置的方法来生成整数序列?
答案 0 :(得分:2)
您需要Enumerable.Range方法:
IEnumerable<int> seq = Enumerable.Range(1, 999).Select(x => x);
创建一个正方形序列:
IEnumerable<int> squares = Enumerable.Range(1, 10).Select(x => x * x);
奇数序列:
IEnumerable<int> oddNumbers = Enumerable.Range(1, 100).Where(x => x % 2 != 0);
答案 1 :(得分:2)
你可以将LINQ Enumerable.Range
(取得你需要的起始索引和数量),Where
与你的两个条件和Sum
连在一起。
% == 0
(模运算符)可确保您的号码可被其他数字整除。
这给出了以下LINQ单行:
Enumerable.Range(0, 1000).Where(number => number % 3 == 0 || number % 5 == 0).Sum();