Программирование/Примеры программ на языке программирования Rust: различия между версиями
Содержимое удалено Содержимое добавлено
LPS1018 (обсуждение | вклад) |
LPS1018 (обсуждение | вклад) |
||
Строка 377:
</syntaxhighlight>
== Нахождение [[w: Наибольший_общий_делитель|наибольшего общего делителя]]
<syntaxhighlight lang="rust">
//Наибольший общий делитель
fn euclidean_algorithm(arr: &[i64]) -> std::option::Option<i64>
{
Строка 397 ⟶ 398 :
}
return arr.pop();
}
//Наименьшее общее кратное
fn nok(arr: &[i64]) -> std::option::Option<i64>
{
match arr.len()
{
0 | 1 => None,
_ => {
let mut arr = arr.to_vec();
let mut acc = 1;
for index in 0..arr.len()-1
{
for index1 in 1..arr.len()
{
if index == index1
{
continue;
}
acc *= euclidean_algorithm1(&[arr[index], arr[index1]]).unwrap();
}
}
Some(arr.iter().product::<i64>().abs() / acc)
}
}
}
Строка 402 ⟶ 428 :
let arr = vec![10, 45, 95];
println!("{} {}", euclidean_algorithm(&arr).unwrap(), nok(&arr).unwrap());
}
</syntaxhighlight>
|