#![allow(dead_code)]
fn main() {
let name = "Ruster";
println! ("Hello Rusters, I am {} and Rust is awseome", name);
}
#![allow(dead_code)]
fn main() {
let a = 10;
let b = 20;
// print debug information for the a + b expression
dbg! (a+b);
}
#![allow(dead_code)]
fn main() {
let a = 10;
let b = 100;
let max = if a > b { a } else { b };
println! ("The maximum {}", max);
}
#![allow(dead_code)]
fn main() {
let n = 10;
let t = match n % 2 {
0 => "even",
_ => "odd"
};
println! ("{} is {}", n, t);
}
#![allow(dead_code)]
fn factorial (n: i32) -> u32 {
match n {
0 | 1 => 1,
n if n > 0 => n as u32 * factorial (n-1),
_ => panic! ("not possible")
}
}
fn main () {
println! ("10!: {} 0!: {} -10: {}", factorial(10), factorial(0), factorial(-10));
}
#![allow(dead_code)]
fn main() {
let v = [1,2,4,5,23,54,6,7,34,6,6,3];
let mut max = v[0];
for x in &v {
if *x > max {
max = *x;
}
}
println! ("The maximum {}", max);
}
#![allow(dead_code)]
fn maximum (a: u32, b: u32) -> u32 {
if a > b {
a
}
else
{
b
}
}
fn main() {
let a = 10;
let b = 100;
let max = maximum (a, b);
println! ("The maximum {}", max);
}
#![allow(dead_code)]
fn maximum (v: &[u32]) -> u32 {
let mut max = v[0];
for x in v {
if *x > max {
max = *x;
}
}
max
}
fn main() {
let v = [1,2,4,5,23,54,6,7,34,6,6,3];
let max = maximum (&v);
println! ("The maximum {}", max);
}
#![allow(dead_code)]
fn main() {
let v = [1,2,4,5,23,54,6,7,34,6,6,3];
let max = v.iter().fold (v[0], |max, x| {
if *x > max
{
*x
} else {
max
}
});
println! ("The maximum {}", max);
}
Solution: Catalin Gheorghe
fn factorial (n: i32) -> Option<u32> {
if n < 0 {
return None
}
match factorial(n-1) {
Some(value) => Some(value * (n as u32)),
None => Some(1)
}
}
fn map(option: Option<u32>) -> String {
match option {
Some(value) => value.to_string(),
None => "not possible".to_string()
}
}
fn main () {
println! ("10!: {}, 0!: {}, -10!: {}", map(factorial(10)), map(factorial(0)), map(factorial(-10)));
// prints 10!: 3628800, 0!: 0, 10!: not possible
}