Project Euler(http://projecteuler.net/)是个很有意思的数学编程兴趣网站。问题描述简短,提交也很简单,用它来学习一门新语言也很不错。最近在工作之余,尝试了一门新的编程语言rust。光做不说,假把式!就拿Project Euler的题来练练手。Rust是Mozilla提出的一门系统编程语言,具有强类型、安全、并发、高效的特性,网上也有不少的介绍。不多说了, 先上第一题。
Problem 1: Multiples of 3 and 5
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.
fn main() {
let result = (1i64..1000).filter(|&i| i % 3 == 0 || i % 5 == 0).fold(0, |acc, x| acc + x);
println!("result = {}", result);
}
简单的说下rust的语法。fn关键字是用来声明函数。let关键字用来变量绑定,定义局部变量。rust很好的一点是拥有强大的类型推导能力,可自行推导出变量的类型。(1i64..1000)表示一个从1到999(注意end是exclude的)的range。