INDAPlus21 / INDAPlus21/boleni-task-2

Pass

Open
#1 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Description

**Very well done Jonatan!**

> `// There are problably built-in features for abs value but eh-`
- Yes!

_Your code_:
```rust
let bytes_read = io::stdin().read_line(&mut input).expect("There was something wrong with the input.");

if bytes_read == 0 {break;}

let numbers = input.trim().split(" ").collect::>();
let n1 = numbers[0].parse::().expect("Please input a valid number.");
let n2 = numbers[1].parse::().expect("Please input a valid number.");

println!("{}",
if n1-n2 > 0 {
n1-n2
} else {
(n1-n2)*-1
});
```

_Alternative_:
```rust
match io::stdin().read_line(&mut input).expect("There was something wrong with the input.") {
0 => break,
_ => {
let numbers: Vec = input
.trim()
.split_whitespace() // Optimised version of `.split(" ")`
.map(|_number| _number.parse().unwrap())
.collect();

println!("{}", (numbers[0] - numbers[1]).abs());
}
}
```

Also, lets shorten your other code by using functional features.

_Your code_:
```rust
let numbers: Vec<&str> = numbers.trim().split(" ").collect();

let mut sorted_numbers = Vec::new();

for num in numbers {
sorted_numbers.push(num.trim().parse::().expect("Invalid number!"));
}

sorted_numbers.sort();

let mut sum: u32 = 0;

if n % 2 == 0 {
for i in n/2..n {
sum += sorted_numbers[i as usize];
}
} else {
for i in (n+1)/2-1..n {
sum += sorted_numbers[i as usize];
}
}

println!("{}", sum)
```

_Shorter code_:
```rust
let n: usize = n.trim().parse().expect("Invalid value n");
// ...

let mut numbers: Vec = numbers
.trim()
.split_whitespace()
.map(|_number| _number.parse().unwrap())
.collect();

numbers.sort();

let mut sum: u32 = 0;

for _i in (
match n % 2 {
0 => n/2,
1 => (n+1)/2-1 // Is this not equal to `n/2`?
}
)..n {
sum += sorted_numbers[i];
}

println!("{}", sum)
```

_Even shorter code_:
```rust
let n: usize = n.trim().parse().expect("Invalid value n");
// ...

let mut numbers: Vec = numbers
.trim()
.split_whitespace()
.map(|_number| _number.parse().unwrap())
.collect();

numbers.sort();

println!("{}", numbers[n/2..].iter().sum::())
```

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue contains Rust code-review feedback but names no repository file, test, or entry point. No concrete change or completion condition is specified, so clarify the intended task and identify the relevant code and validation steps before starting.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
developer-experience
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.