упр.02 задача 4
- Краен срок:
- 22.10.2025 23:59
- Точки:
- 1
Срокът за предаване на решения е отминал
// Include the solution source in the same file, so we
// don't have to worry about item visibility.
// Please don't use `include!` in real code, this is a hack
// around the checking system.
include!{ "../src/lib.rs" }
#[test]
fn test_basic() {
assert_eq!(sum_slice(&[1, 2, 3, 4, 5]), 15);
assert_eq!(sum_slice(&[-1]), -1);
assert_eq!(sum_slice(&[]), 0);
}
fn sum_slice(arr: &[i32]) -> i32 {
// върни сумата на елементите в среза
}
fn main() {
let a: [i32; 5] = [1, 2, 3, 4, 5];
let s_full: &[i32] = &a;
let s_part: &[i32] = &a[1..4];
println!("Сума на целия масив: {}", sum_slice(s_full));
println!("Сума на частичен срез: {}", sum_slice(s_part));
let v = vec![10, 20, 30];
println!("Сума на вектор: {}", sum_slice(&v));
}
- a) Имплементирай
sum_slice. - b) Обясни защо
&vможе да се използва като&[i32]. - c) Какво ще стане, ако извикаш
sum_slice(&a[2])?
П.С. игнорирайте линка с указания за домашни - добавя се автоматично и не е актуален в случая.
Задължително прочетете (или си припомнете): Указания за предаване на домашни
Погрижете се решението ви да се компилира с базовия тест:
// Include the solution source in the same file, so we
// don't have to worry about item visibility.
// Please don't use `include!` in real code, this is a hack
// around the checking system.
include!{ "../src/lib.rs" }
#[test]
fn test_basic() {
assert_eq!(sum_slice(&[1, 2, 3, 4, 5]), 15);
assert_eq!(sum_slice(&[-1]), -1);
assert_eq!(sum_slice(&[]), 0);
}
